Git Hacks

Whenever you do git pull and you find some files modified locally as part of build and want to overwrite it with the contents in the git repository.

git checkout HEAD^ file/to/overwrite
git pull

To checkout a new git branch and to create a new git branch and checkout

git checkout <branch>

git checkout -b <branch>

To delete a remote branch and local branch

git push –delete origin bugfix/
git branch -d bugfix/

To copy a directory without its history and add as a new folder in git

cp -R old_dir new_dir

git add new_dir

git commit -m "first revision of new_dir's copied files"

Creating a diff file

git diff > 1.patch

Applying a git generated patch file

git apply 1.patch

Saving your changes while checking out a branch

git stash save

if you have to save again

git stash save

stash@{1} – older changes…newest will become stash{0}

git stash list – lists all stash

git stash drop

stash@{0} dropped. stash@{1} will become stash@{0}

git stash apply stash@{2} – to apply changelist in stash{2}

git stash drop stash@{2} – to drop the changelist in stash{2}

git stash pop - To get everything back
git checkout -b newbranch
git stash pop

git stash pop - Restore back to the saved state, but it deletes the stash from the temporary storage.
git stash apply - Restore back to the saved state and leaves the stash list for possible later reuse. Need to use below command to drop them.
git stash drop

git stash apply 1 is equal to git stash@{1} apply

About the Author


17 years of experience in various layers of software. Primarily experienced in system side software design and development on server management software. Interested in linux development in x86 and arm architecture.