18 Sep, 2016 - About 3 minutes
Git Cheat Sheet
Intro
As I’m always forgetting how to reset my local changes from origin HEAD. This cheat sheet might help.
Create
Clone an existing repository
git clone ssh://user@domain.com/repo.git |
Create a new local repository
git init |
Local Changes
Changed files in your working directory
git status |
Changes to tracked files
git diff |
Add all current changes to the next commit
git add . |
Add some changes in <file>
to the next commit
git add -p <file> |
Commit all local changes in tracked files
git commit -a |
Commit previously staged changes
git commit |
Change the last commit (Don’t amend publish commits)
git commit --amend |
Branches & Tags
List all existing branches
git branch -av |
Switch HEAD branch
git checkout <branch> |
Create new branch based on your current HEAD
git branch <new-branch> |
Create new tracking branch based on a remote branch
git checkout --track <remote/branch> |
Delete a local branch
git branch -d <branch> |
Mark the current commit with a tag
git tag <tag-name> |
Update & Publish
List all currently configured remotes
git remote -v |
Show information about a remote
git remote show <remote> |
Add new remote repository, named <remote>
git remote add <shortname> <url> |
Download all changes from <remote>
, but don’t integrate into HEAD
git fetch <remote> |
Download changes and directly merge/integrate into HEAD
git pull <remote> <branch> |
Publish local changes on a remote
git push <remote> <branch> |
Delete a branch on the remote
git branch -dr <remote/branch> |
Publish your tags
git push --tags |
Merge & Rebase
Merge <branch>
into your current HEAD, without fast-forward
git merge --no-ff <branch> |
Rebase your current HEAD onto <branch>
git rebase <branch> |
Abort a rebase
git rebase --abort |
Continue a rebase after resolving conflicts
git rebase --continue |
Use your configured merge tool to solve conflicts
git mergetool |
Use your editor to manually solve conflicts and (after resolving) mark file as resolved
git add <resolved-file> |
Undo
Discard all local changes in your working directory
git reset --hard HEAD |
Discard local changes in a specific file
git checkout HEAD <file> |
Revert a commit (by producing a new commit with contrary changes)
git revert <commit> |
Reset your HEAD pointer to a previous commit, and discard all changes since then
git reset --hard <commit> |
…and preserve all changes as upstaged changes
git reset <commit> |
…and preserve uncommitted local changes
git reset --keep <commit> |
Commit History
Show all commits, starting with newest
git log |
Show changes over time for a specific file
git log -p <file> |
Who changed what and when in <file>
git blame <file> |
Git plugins
Store credential in manager
git config credential.helper 'store' |
Activate gpg signature
git config commit.gpgsign true |