Prezto Git

Enjoy this cheat sheet at its fullest within Dash, the macOS documentation browser.

Git

g

git

is short for "git"

Branch (b)

gb

Lists, creates, renames, and deletes branches

git branch

gba

Creates a new branch

git branch --all --verbose

gbc

Creates a new branch

git checkout -b

gbd

Deletes a branch

git branch --delete

gbD

Deletes the branch regardless of its push and merge status, so be careful using this one, see also "gbd"

git branch --delete --force

gbl

Lists branches and their commits, see also "gbv"

git branch --verbose

gbL

Lists all local and remote branches and their commits

git branch --all --verbose

gbr

Renames/moves a branch, see also "gbm"

git branch --move

gbR

Renames/moves a branch even if the new branch name already exists, see also "gbM"

git branch --move --force

gbs

Lists branches and their commits with ancestry graphs

git show-branch

gbS

Lists local and remote branches and their commits with ancestry graphs

git show-branch --all

gbv

Lists branches with verbose information about their commits

git branch --verbose

gbV

Lists branches with more verbose information about their commits

git branch --verbose --verbose

gbx

Deletes a branch, see also "gbd"

git branch --delete

gbX

Deletes a branch irrespective of its merged status, see also "gbD"

git branch --delete --force

Commit (c)

gc

Records changes to the repository

git commit --verbose

gca

Stages all modified and deleted files

git commit --verbose --all

gcm

Records changes to the repository with the given message

git commit --message

gcS

Records changes to the repository. (Signed)

git commit -S --verbose

gcSa

Stages all modified and deleted files. (Signed)

git commit -S --verbose --all

gcSm

Records changes to the repository with the given message. (Signed)

git commit -S --message

gcam

Stages all modified and deleted files, and records changes to the repository with the given message

git commit --all --message

gco

Checks out a branch or paths to work tree

git checkout

gcO

Checks out hunks from the index or the tree interactively

git checkout --patch

gcf

Amends the tip of the current branch using the same log message as HEAD

git commit --amend --reuse-message HEAD

gcSf

Amends the tip of the current branch using the same log message as HEAD. (Signed)

git commit -S --amend --reuse-message HEAD

gcF

Amends the tip of the current branch

git commit --verbose --amend

gcSF

Amends the tip of the current branch. (Signed)

git commit -S --verbose --amend

gcp

Applies changes introduced by existing commits

git cherry-pick --ff

gcP

Applies changes introduced by existing commits without committing

git cherry-pick --no-commit

gcr

Reverts existing commits by reverting patches and recording new commits

git revert

gcR

Removes the HEAD commit

git reset "HEAD^"

gcs

Displays various types of objects

git show

gcsS

Displays commits with GPG signature

git show --pretty=short --show-signature

gcl

Lists lost commits

git-commit-lost

gcy

Displays commits yet to be applied to upstream in the short format

git cherry -v --abbrev

gcY

Displays commits yet to be applied to upstream

git cherry -v

Conflict (C)

gCl

Lists unmerged files

git --no-pager diff --name-only --diff-filter=U

gCa

Adds unmerged file contents to the index

git add $(gCl)

gCe

Executes merge-tool on all unmerged file

git mergetool $(gCl)

gCo

Checks out our changes for unmerged paths

git checkout --ours --

gCO

Checks out our changes for all unmerged paths

gCo $(gCl)

gCt

Checks out their changes for unmerged paths

git checkout --theirs --

gCT

Checks out their changes for all unmerged paths

gCt $(gCl)

Data (d)

gd

Displays information about files in the index and the work tree

git ls-files

gdc

Lists cached files

git ls-files --cached

gdx

Lists deleted files

git ls-files --deleted

gdm

Lists modified files

git ls-files --modified

gdu

Lists untracked files

git ls-files --other --exclude-standard

gdk

Lists killed files

git ls-files --killed

gdi

Lists ignored files

git status --porcelain --short --ignored | sed -n "s/^!! //p"

Fetch (f)

gf

Downloads objects and references from another repository

git fetch

gfa

Downloads objects and references from all remote repositories

git fetch --all

gfc

Clones a repository into a new directory

git clone

gfcr

Clones a repository into a new directory including all submodules

git clone --recurse-submodules

gfm

Fetches from and merges with another repository or local branch

git pull

gfr

Fetches from and rebases on another repository or local branch

git pull --rebase

Flow (F)

gFi

Is short for "git flow init"

git flow init

Flow Feature (Ff)

gFf

Is short for "git flow feature"

git flow feature

gFfl

Is short for "git flow feature list"

git flow feature list

gFfs

Is short for "git flow feature start"

git flow feature start

gFff

Is short for "git flow feature finish"

git flow feature finish

gFfp

Is short for "git flow feature publish"

git flow feature publish

gFft

Is short for "git flow feature track"

git flow feature track

gFfd

Is short for "git flow feature diff"

git flow feature diff

gFfr

Is short for "git flow feature rebase"

git flow feature rebase

gFfc

Is short for "git flow feature checkout"

git flow feature checkout

gFfm

Is short for "git flow feature pull"

git flow feature pull

gFfx

Is short for "git flow feature delete"

git flow feature delete

Flow Bugfix (Fb)

gFb

Is short for "git flow bugfix"

git flow bugfix

gFbl

Is short for "git flow bugfix list"

git flow bugfix list

gFbs

Is short for "git flow bugfix start"

git flow bugfix start

gFbf

Is short for "git flow bugfix finish"

git flow bugfix finish

gFbp

Is short for "git flow bugfix publish"

git flow bugfix publish

gFbt

Is short for "git flow bugfix track"

git flow bugfix track

gFbd

Is short for "git flow bugfix diff"

git flow bugfix diff

gFbr

Is short for "git flow bugfix rebase"

git flow bugfix rebase

gFbc

Is short for "git flow bugfix checkout"

git flow bugfix checkout

gFbm

Is short for "git flow bugfix pull"

git flow bugfix pull

gFbx

Is short for "git flow bugfix delete"

git flow bugfix delete

Release

gFr

Is short for "git flow release"

git flow release

gFrl

Is short for "git flow release list"

git flow release list

gFrs

Is short for "git flow release start"

git flow release start

gFrf

Is short for "git flow release finish"

git flow release finish

gFrp

Is short for "git flow release publish"

git flow release publish

gFrt

Is short for "git flow release track"

git flow release track

gFrd

Is short for "git flow release diff"

git flow release diff

gFrr

Is short for "git flow release rebase"

git flow release rebase

gFrc

Is short for "git flow release checkout"

git flow release checkout

gFrm

Is short for "git flow release pull"

git flow release pull

gFrx

Is short for "git flow release delete"

git flow release delete

Flow Hotfix (Fh)

gFh

Is short for "git flow hotfix"

git flow hotfix

gFhl

Is short for "git flow hotfix list"

git flow hotfix list

gFhs

Is short for "git flow hotfix start"

git flow hotfix start

gFhf

Is short for "git flow hotfix finish"

git flow hotfix finish

gFhp

Is short for "git flow hotfix publish"

git flow hotfix publish

gFht

Is short for "git flow hotfix track"

git flow hotfix track

gFhd

Is short for "git flow hotfix diff"

git flow hotfix diff

gFhr

Is short for "git flow hotfix rebase"

git flow hotfix rebase

gFhc

Is short for "git flow hotfix checkout"

git flow hotfix checkout

gFhm

Is short for "git flow hotfix pull"

git flow hotfix pull

gFhx

Is short for "git flow hotfix delete"

git flow hotfix delete

Flow Support (Fs)

gFs

Is short for "git flow support"

git flow support

gFsl

Is short for "git flow support list"

git flow support list

gFss

Is short for "git flow support start"

git flow support start

gFsf

Is short for "git flow support finish"

git flow support finish

gFsp

Is short for "git flow support publish"

git flow support publish

gFst

Is short for "git flow support track"

git flow support track

gFsd

Is short for "git flow support diff"

git flow support diff

gFsr

Is short for "git flow support rebase"

git flow support rebase

gFsc

Is short for "git flow support checkout"

git flow support checkout

gFsm

Is short for "git flow support pull"

git flow support pull

gFsx

Is short for "git flow support delete"

git flow support delete

Grep (g)

gg

Displays lines matching a pattern

git grep

ggi

Displays lines matching a pattern ignoring case

git grep --ignore-case

ggl

Lists files matching a pattern

git grep --files-with-matches

ggL

Lists files that are not matching a pattern

git grep --files-without-matches

ggv

Displays lines not matching a pattern

git grep --invert-match

ggw

Displays lines matching a pattern at word boundary

git grep --word-regexp

Index (i)

gia

Adds file contents to the index

git add

giA

Adds file contents to the index interactively

git add --patch

giu

Adds file contents to the index (updates only known files)

git add --update

gid

Displays changes between the index and a named commit (diff)

git diff --no-ext-diff --cached

giD

Displays changes between the index and a named commit (word diff)

git diff --no-ext-diff --cached --word-diff

gii

Temporarily ignore differences in a given file

git update-index --assume-unchanged

giI

Unignore differences in a given file

git update-index --no-assume-unchanged

gir

Resets the current HEAD to the specified state

git reset

giR

Resets the current index interactively

git reset --patch

gix

Removes files/directories from the index (recursively)

git rm -r --cached

giX

Removes files/directories from the index (recursively and forced)

git rm -rf --cached

Log (l)

gl

Displays the log

git log --topo-order --pretty=format:"${gitlogmediumformat}"

gls

Displays the stats log

git log --topo-order --stat --pretty=format:"${gitlogmediumformat}"

gld

Displays the diff log

git log --topo-order --stat --patch --full-diff --pretty=format:"${gitlogmediumformat}"

glo

Displays the one line log

git log --topo-order --pretty=format:"${gitlogonelineformat}"

glg

Displays the graph log

git log --topo-order --all --graph --pretty=format:"${gitlogonelineformat}"

glb

Displays the brief commit log

git log --topo-order --pretty=format:"${gitlogbriefformat}"

glc

Displays the commit count for each contributor in descending order

git shortlog --summary --numbered

glS

Displays the log and checks the validity of signed commits

git log --show-signature

Merge (m)

gm

Joins two or more development histories together

git merge

gmC

Joins two or more development histories together but does not commit

git merge --no-commit

gmF

Joins two or more development histories together but does not commit generating a merge commit even if the merge resolved as a fast-forward

git merge --no-ff

gma

Aborts the conflict resolution, and reconstructs the pre-merge state

git merge --abort

gmt

Runs the merge conflict resolution tools to resolve conflicts

git mergetool

Push (p)

gp

Updates remote refs along with associated objects

git push

gpf

Forcefully updates remote refs along with associated objects using the safer "--force-with-lease" option

git push --force-with-lease

gpF

Forcefully updates remote refs along with associated objects using the riskier "--force" option

git push --force

gpa

Updates remote branches along with associated objects

git push --all

gpA

Updates remote branches and tags along with associated objects

git push --all && git push --tags

gpt

Updates remote tags along with associated objects

git push --tags

gpc

Updates remote refs along with associated objects and adds origin as an upstream reference for the current branch

git push --set-upstream origin "$(git-branch-current 2> /dev/null)"

gpp

Pulls and pushes from origin to origin

git pull origin "$(git-branch-current 2> /dev/null)" && git push origin "$(git-branch-current 2> /dev/null)"

Rebase (r)

gr

Forward-ports local commits to the updated upstream head

git rebase

gra

Aborts the rebase

git rebase --abort

grc

Continues the rebase after merge conflicts are resolved

git rebase --continue

gri

Makes a list of commits to be rebased and opens the editor

git rebase --interactive

grs

Skips the current patch

git rebase --skip

Remote (R)

gR

Manages tracked repositories

git remote

gRl

Lists remote names and their URLs

git remote --verbose

gRa

Adds a new remote

git remote add

gRx

Removes a remote

git remote rm

gRm

Renames a remote

git remote rename

gRu

Fetches remotes updates

git remote update

gRp

Prunes all stale remote tracking branches

git remote prune

gRs

Displays information about a given remote

git remote show

gRb

Opens a remote on [GitHub][3] in the default browser

git-hub-browse

Stash (s)

gs

Stashes the changes of the dirty working directory

git stash

gsa

Applies the changes recorded in a stash to the working directory

git stash apply

gsx

Drops a stashed state

git stash drop

gsX

Drops all the stashed states

git-stash-clear-interactive

gsl

Lists stashed states

git stash list

gsL

Lists dropped stashed states

git-stash-dropped

gsd

Displays changes between the stash and its original parent

git stash show --patch --stat

gsp

Removes and applies a single stashed state from the stash list

git stash pop

gsr

Recovers a given stashed state

git-stash-recover

gss

Stashes the changes of the dirty working directory, including untracked

git stash save --include-untracked

gsS

Stashes the changes of the dirty working directory interactively

git stash save --patch --no-keep-index

gsw

Stashes the changes of the dirty working directory retaining the index

git stash save --include-untracked --keep-index

Submodule (S)

gS

Initializes, updates, or inspects submodules

git submodule

gSa

Adds given a repository as a submodule

git submodule add

gSf

Evaluates a shell command in each of checked out submodules

git submodule foreach

gSi

Initializes submodules

git submodule init

gSI

Initializes and clones submodules recursively

git submodule update --init --recursive

gSl

Lists the commits of all submodules

git submodule status

gSm

Moves a submodule

git-submodule-move

gSs

Synchronizes submodules remote URL to the value specified in .gitmodules

git submodule sync

gSu

Fetches and merges the latest changes for all submodule

git submodule foreach git pull origin master

gSx

Removes a submodule

git-submodule-remove

Tag (t)

gt

Lists tags or creates tag

git tag

gtl

Lists tags matching pattern

git tag -l

gts

Creates a signed tag

git tag -s

gtv

Validate a signed tag

git verify-tag

Working Directory (w)

gws

Displays working-tree status in the short format

git status --ignore-submodules=${gitstatusignoresubmodules} --short

gwS

Displays working-tree status

git status --ignore-submodules=${gitstatusignoresubmodules}

gwd

Displays changes between the working tree and the index (diff)

git diff --no-ext-diff

gwD

Displays changes between the working tree and the index (word diff)

git diff --no-ext-diff --word-diff

gwr

Resets the current HEAD to the specified state, does not touch the index nor the working tree

git reset --soft

gwR

Resets the current HEAD, index and working tree to the specified state

git reset --hard

gwc

Removes untracked files from the working tree (dry-run)

git clean -n

gwC

Removes untracked files from the working tree

git clean -f

gwx

Removes files from the working tree and from the index recursively

git rm -r

gwX

Removes files from the working tree and from the index recursively and forcefully

git rm -rf