git cheat sheet

git logo

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

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.