8 underrated git commands every programmer should know

Milind Soorya / May 22, 2021

3 min read


I will be adding more useful git tips, if you find this helpful do bookmark this page. 🔖

1. Rename a local branch

useful when you mess up the branch name with some typos.

// Note: no need to include < >, separate words with -
git branch -m <new_name>
eg:- git branch -m new-new-branch

2. Change the upstream branch

use this to push the local branch to a new remote branch.

git push origin -u <new_name>

3. Makes local branch same as remote

At times we may make many changes to our local branch and end up with something that is worse than what we started with, don't worry everyone has been there 😅. This command will be helpful in those scenarios.

// replace staging with the branch you want to reset to
git reset --hard origin/staging

4. Delete the most recent commit, keeping the work you've done

I am amazed that not too many people know of this command, this will help to recover from those stupid typos that creep into our commits.

git reset --soft HEAD~1

5. Delete the most recent commit, destroying the work you've done

Use this command when you know you really messed up. don't fret it's part of the journey.🎯

git reset --hard HEAD~1

6. Stash your work

Stash command is used to temporarily work on another branch without committing our current work.

git stash

7. Recover stash by going into that branch and

❗ please note that git stash apply won't delete the stashed item from the stash list. If you want to recover stash and drop it from the stash list use git stash pop.

git stash apply

8. Go back to a previous commit, undo a rebase

It is quite natural to mess up a rebase, these commands will hopefully save you. use reflog command to find the head number of the required commit you want to reset to.

// Find the head at that point
git reflog

// Replace 5 with the head number, please be extra careful not to
// give wrong wrong head number
git reset --hard "HEAD@{5}"

Learn about building products as a Data Scientist

Get a once-per-month email with my latest article and additional details about my launches, products, and experiments ✨

No spam, sales, or ads. Unsubscribe as your heart desires.