Hackernoon logo8 underrated Git commands every programmer should know (not the usual pull, push, add, commit) by@milindsoorya

8 underrated Git commands every programmer should know (not the usual pull, push, add, commit)

Milind Soorya Hacker Noon profile picture

@milindsooryaMilind Soorya

Hey 👋 I am Milind Soorya, a technology blogger from India.

I will be adding more useful Git tips, if you find this helpful I suggest bookmarking 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

Sometimes 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

git stash apply

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

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.

// 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}"

Thank you very much for reading, liking, and commenting on my articles. As you know, writing quality articles takes time and effort. Therefore, if you have enjoyed my article or if it was helpful please support me by
buying me a coffee 😇.

👉🏼 checkout my website, milindsoorya.site for more updates and to get in touch. Cheers.


Join Hacker Noon

Create your free account to unlock your custom reading experience.