← all tools
Git cheat sheet
WebSearchable reference for everyday git commands.
Setup
| git config --global user.name "…" | Set committer name | |
| git config --global user.email "…" | Set committer email | |
| git init | Initialize a new repo | |
| git clone <url> | Clone a remote repo |
Stage & commit
| git status | Show working tree state | |
| git add <path> | Stage a file (or `.` for all) | |
| git add -p | Stage selectively (hunk by hunk) | |
| git commit -m "msg" | Commit staged changes | |
| git commit --amend | Amend the last commit | |
| git restore --staged <path> | Unstage a file |
Branch & switch
| git branch | List local branches | |
| git branch -a | List local + remote branches | |
| git switch <branch> | Switch to an existing branch | |
| git switch -c <new> | Create + switch to new branch | |
| git branch -d <branch> | Delete (safe) | |
| git branch -D <branch> | Delete (force) |
Sync
| git fetch --all --prune | Update remotes (no merge) | |
| git pull --rebase | Fetch + rebase local commits | |
| git push | Push current branch | |
| git push -u origin <branch> | Push + set upstream | |
| git push --force-with-lease | Safer force push |
History
| git log --oneline --graph --decorate --all | Compact graph of all branches | |
| git log -p <path> | Show patches that touch path | |
| git blame <path> | Who changed each line | |
| git show <ref> | Show commit details | |
| git diff | Unstaged changes | |
| git diff --cached | Staged changes |
Undo
| git restore <path> | Discard unstaged changes | |
| git reset HEAD~1 | Move HEAD back, keep changes | |
| git reset --hard <ref> | Move HEAD, drop changes (destructive) | |
| git revert <ref> | New commit that undoes <ref> | |
| git clean -fd | Remove untracked files + dirs |
Stash & worktrees
| git stash push -m "msg" | Save WIP | |
| git stash list | Show stashes | |
| git stash pop | Re-apply most recent | |
| git worktree add ../path <branch> | Add a separate working tree | |
| git worktree list | List worktrees |