My Git Cheatsheet
Since I moved to Linux for work I started to look up and collect the git commands I need most. On Linux I do not have my beloved GitUp app which is an amazing visual and fully keyboard controllable git tool available for MacOS only. Here is my list of git commands. As usual I created this collection so I know where to copy+paste commands from ;).
Branch stuff
Command | What it does |
---|---|
git checkout -t -b <branch-name> |
Create new branch |
git checkout -b branchxyz origin/branchxyz |
Checkout branch from origin |
git push -u origin feature |
Push a NEW branch to origin |
git push origin |
Push updates for a branch that is already at origin |
git branch --delete <branch name> |
Delete a local branch |
git branch --move <old-name> <new-name> |
Rename a local branch |
git branch |
List all local branches |
git fetch; git branch --all git fetch; git branch -a |
List all local AND remote branches, before fetch all branch info from remote |
git checkout about git rebase main git push origin --force-with-lease |
I want to get my branch "about" to be on top of "main", and push it without overriding updates in origin |
git checkout --track origin/remote-branch |
Checkout a remote branch locally, with tracking |
Commit
Command | What it does |
---|---|
git commit -m 'message' filename.js |
Commit one file |
git commit -am |
Open an editor and commit ALL changed files |
git commit -am "My message" |
Add and commit ALL changed files with the given message |
git add -p OR git commit -p |
Commit parts of a file (so called hunks), most useful next options: y,n,s |
git commit --amend |
Amend the last commit |
git checkout -- <file-name> |
Reset file to last commit |
Others
Command | What it does |
---|---|
git diff --cached |
See the staged code |
git fetch origin |
Update local branch with branches from origin |
git log <branchname> |
Shows the log of that branch |
git cherry-pick <commit hash> |
Cherry pick a certain commit |
git reset -- <filename> |
Undo a git add for |
git checkout -- <filename> |
Revert all changes of |
Visual Tool on Linux
There is one visual tool I use on Linux though, which is git cola. Thanks to @d4nyll for suggesting it:
Git Cola is not the most attractive, but it has everything I need. I've used GitKraken, but it eats a lot of my memory and it's not free.
— Daniel Li (@d4nyll) September 8, 2020