This is my version of git cheat sheet. It is compiled mainly from: https://www.git-tower.com/blog/git-cheat-sheet and https://services.github.com/kit/downloads/github-git-cheat-sheet.pdf.
I will trim them to the more commonly used ones.
CONFIGURE TOOLING
Configure user information for all local repositories
Set the name you want attached to your commit transactions
$ git config --global user.name "[name]"
Set the email you want attached to your commit transactions
$ git config --global user.email "[email address]"
Enable helpful colourisation of command line output
$ git config --global color.ui auto
CREATE REPOSITORIES
Start a new repository or get one from an existing URL
Create a new local repository with the specified name
$ git init [project-name]
Download a project and its entire version history
$ git clone ssh://user@domain.com/repo.git
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 to the next commit
$ git add -p
Commit all local changes in tracked files
$ git commit -a
Commit previously staged changes
$ git commit
Change the last commit
Don‘t amend published commits!
$ git commit --amend
COMMIT HISTORY
Show all commits, starting with newest
$ git log
Show changes over time for a specific file
$ git log -p
Who changed what and when in
$ git blame
BRANCHES & TAGS
List all existing branches
$ git branch -av
Switch HEAD branch
$ git checkout
Create a new branch based on your current HEAD
$ git branch
Create a new tracking branch based on a remote branch
$ git checkout --track <remote/branch>
Delete a local branch
$ git branch -d
Mark the current commit with a tag
$ git tag
UPDATE & PUBLISH
List all currently configured remotes
$ git remote -v
Show information about a remote
$ git remote show
Add new remote repository, named
$ git remote add
Download all changes from , but don‘t integrate into HEAD
$ git fetch
Download changes and directly merge/integrate into HEAD
$ git pull
Publish local changes on a remote
$ git push
Delete a branch on the remote
$ git branch -dr <remote/branch>
Publish your tags
$ git push --tags
MERGE & REBASE
Merge into your current HEAD
$ git merge
Rebase your current HEAD onto
Don‘t rebase published commits!
$ git rebase
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 $ git rm
UNDO
Discard all local changes in your working directory
$ git reset --hard HEAD
Discard local changes in a specific file
$ git checkout HEAD
Revert a commit (by producing a new commit with contrary changes)
$ git revert
Reset your HEAD pointer to a previous commit
…and discard all changes since then
$ git reset --hard
…and keep all changes as unstaged changes
$ git reset
…and keep uncommitted local changes
$ git reset --keep
