20 Git Command I Use All The Time — Git CheatSheet
In this article, I just want to lay down a quick cheat sheet. It will include commands that I s...
For further actions, you may consider blocking this person and/or reporting abuse
I sometimes use
git rebase -i HEAD~N
to rebase the last N commits interactively. From there you can decide what action to apply on each commit: pick, reword, squash etc.Some open source projects enforce single commit pull requests so it comes handy then and makes it easy to squash commits.
Interaction for the win.
Interactively Rebase with git
Jesse Phillips ・ Jan 24 '20 ・ 3 min read
Thanks for sharing
Thanks
I'll add it
git fetch && git rebase origin/main && git push --force
This is basically what I do to "merge" from main into a dev branch. But I find the results are usually much better than using
git merge
. Easier conflict resolution process and clean commit history. But as always when rebasing and force-pushing, you have to consider the pain it may cause to others working in the same branch (but if it's just you - go for it!)Don't use the
--force
flag, even in that situation. Use--force-with-lease
for the rare case where you do end up with a remote change during the rebase.That should be named --nudge
Or change to --force --force when you really mean it.
Yes
Right
Thanks for sharing
You are absolutely right.
We should avoid using force.
But thanks for your suggestions 👍
Good list!
Though I do think the 'git checkout' is a bit dated.
'git switch' is able to switch branches and it's easier to remember. It will also automatically pull remote branches if you switch to something on the remote.
git-scm.com/docs/git-switch
'git checkout' I only use to checkout a specific commit hash if I need to do that
git switch --detach <hash>
Yes
Thanks for sharing
Thanks I'll update that.
Most important one: git bisect!
Added in the post
Thanks
git add .
actually only adds all the files in the current folder (.
) which means if you are in a subdirectory this can potentially not add a chance you made. What really adds ALL changes isgit add -a
Okay
Thanks a lot
I'll update that one
There's a certain distinction between "should now" and "use regularly", at least for me as I switched to GUI tool for better representation of git tree.
On regular basis, I use only these commands:
git rebase -i
- most used command to amend whole branch (remove commits, edit commit message and many more)git reset HEAD^1
- to get code back last commit changes into working tree and continue working - as a development strategy doing backup and WIP commitgit branch --contains <hash>
- to check in which branches given commit is included (really helps if there are lots of staging/demo branches apart from master branch)git log -G<string> --all
- use lots of time to search code in git historyAlso, if you're making a list of commands one should know, this list certainly is missing a
git diff
command.Cheers!
Added in the post.
Sorry and Thanks
Nothing to be sorry about! Cheers!
Thanks 💯
Just a suggestion: In some of your headers, the dash dash (--) is being converted to a single en dash ( — ), probably automatically by your word processor.
Example:
git rm -r — cached
should begit rm -r --cached
Yes
I'll update that one
Thanks a lot
Very useful article. All the commands are indeed the important ones. One suggestion I have is that for many commands you've just put abstract/generic description which does not explain a reader as to what that commit is used for exactly.
For example: git reflog - you mentioned why it is important but adding an additional line explaining the details would have been better.
Thanks
I'll definitely look upon it
I also find the command:
git reset HEAD^
really useful too, lets you revert an accidental commit and keep the changes :)Added in the post
Thanks
Interesting, I never used git branch -r (thank's for the tip ^^).
I don't think everyone should know all them, but indeed it's always useful to know that they exist (and that's not a problem if you don't know the syntax )
I realized that in my daily life, I'm using a lot a GUI for all the branch, status, commit, and merge stuff
And for some obscure reason I only use git stash on cli ...
Welcome!
Glad you liked them :)
This is a nice list on the basic Git commands.
I have a nice and very important addition to that list.
I recently experienced with Git Aliases and have to say that they are really awesome and should be know by everyone!
I created an article that explain how I use them to delete all my local branches. If you are interested you can read about it here in my personal blog: knulst.de/how-to-remove-local-git-...
Also it is published on Medium: betterprogramming.pub/how-to-remov...
And here on Dev.to: dev.to/paulknulst/how-to-remove-lo...
If you did not know about Git Alias it's worth reading about! (wherever you want) :)
Thanks
I'll check it out.
git stash
git cherry-pick
Thanks
I'll update the post.
Updated
Thanks for Contributing
I try
git branch -r
, Don't show all the local branches ,but show all the remote branches.I check git docs ,
-r, --remotes
is use for act on remote-tracking branches.Thanks
I'll add it.
git commit --amend
andgit merge --no-ff --no-commit
are other handy ones that I use pretty often :)Thanks 👍
I'll add them.
Not sure if anyone has pointed it out but ‘git pull’ is a combo of ‘git fetch’ and ‘git merge’, so you don’t need to run a ‘git fetch’ before a pull.
Yes, you are absolutely correct
Thanks for the point
Ever since I learnt about
git add -p
ive never looked back👍
Useful commands 👍✨💯
Thanks a lot 😊
git stash
is a life saver.True
Perfect execution ✅🤣
Thanks :)
Very informative!
Thanks 👍
thanks for sharing.
As sweet and helpful as this is, I do not remember the last time I had to use git commands, thanks to Visual Studio. 😎
Welcome!
Glad you liked it :)
This was useful! Bookmarked!
Thanks for supporting
Great list! Well done!
For anyone who wants to learn more about Git and GitHub, I could suggest this free eBook here:
bobbyiliev / introduction-to-git-and-github-ebook
Free Introduction to Git and GitHub eBook
This is an open-source introduction to Git and GitHub guide that will help you learn the basics of version control and start using Git for your SysOps, DevOps, and Dev projects. No matter if you are a DevOps/SysOps engineer, developer, or just a Linux enthusiast, you can use Git to track your code changes and collaborate with other members of your team or open source maintainers.
The guide is suitable for anyone working as a developer, system administrator, or a DevOps engineer and wants to learn the basics of Git, GitHub and version control in general.
To download a copy of the eBook use one of the following links:
Dark mode
Light mode
Thanks a lot
I checked it , it's useful
How is here no git diff command? One of the most used.
Added in the post.
Sorry and Thanks
I thought there are three of them only... 😅
😄
Thanks for visiting.
interesting
Nice 🔥
Thanks 🙏
Welcome 🤗
Thanks. Bookmarked.
🤗 Welcome
Glad you liked it :)
Thanks a lot
I'll update the list with these commands
👍
bisect <3
👍
Atleast adding more to the ones I already will do no harm. So nice of you to share
Glad you liked it :)
does „git rm -r - cached config.js“ only delete the remote file in the latest commit or in all previous commits too? or maybe does github create a new commit, leaving the previous commits untouched?
It deletes the file you want remotely
It'll not delete any file locally
I hope it is clear now.
Great list!
Very good, this article
I never used git bisect 🤯