Skip to main content

Git cheat sheet

·449 words·3 mins·
Git Utils
Table of Contents

Git sheet sheet commands

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>
git rm <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

Reference
#