Last Updated: May 21, 2018
· haeck
Haeck design logo raleigh nc

Git Cheatsheet - Basic Functions

Git Setup

See Git Location: which git

Get Version of Git: git --version

Create Alias for Git Status: git config --global alias.st status

Add or Edit gitignore: nano .gitignore

Track Empty Directory: touch dir/.gitkeep

Help: git help

Crucial Git Commands

Initialize Git: git init

Set Everything to Commit: git add .

Set Single File to Commit: git add index.php

Commit Changes: git commit -m "COMMITMESSAGE"

Add and Commit: git commit -am "COMMITMESSAGE"

Remove File from Git: git rm index.php

Update All Changes: git add -u

Remove File and Do Not Track Anymore: git rm --cached index.php

Move or Rename Files: git mv index.php dir/index-two.php

Undo Modifications to Last Commit: git checkout -- index.php

Restore File From Specific Commit: git checkout COMMITNAME -- index.php


Go Back to Previous Commit: git revert COMMITNAME

Soft Reset (HEAD only): git reset --soft COMMITNAME

Undo Previous Commit: git reset --soft HEAD~

Mixed Reset (HEAD and staging): git reset --mixed COMMITNAME

Hard Reset (HEAD, staging, and dir): git reset --hard COMMITNAME

Update & Delete

Test the Delete of Untracked Files: git clean -n

Delete Untracked Files: git clean -f

Unstage: git reset HEAD index.php

Commit to Most Recent Commit: git commit --amend -m "COMMITMESSAGE"

Update Most Recent Commit Message: git commit --amend -m "COMMITMESSAGE"


List Branches: git branch

Create New Branch: git branch BRANCHNAME

Change Branch: git checkout BRANCHNAME

Create and Change to New Branch: git checkout -b BRANCHNAME

Rename Branch: git branch -m BRANCHNAME BRANCHNAMETWO or: git branch --move BRANCHNAME BRANCHNAMETWO

Show Branches Merged with Current Branch: git branch --merged

Delete Merged Branch: git branch -d BRANCHNAME or: git branch --delete BRANCHNAME

Delete Unmerged Branch: git branch -D BRANCHNAME


Simle Merge: git merge BRANCHNAME

Merge to Master: git merge --ff-only BRANCHNAME

Stop Merge: git merge --abort


Move to Stash: git stash save "COMMITMESSAGE"

Show Stash: git stash list

List Stash Stats: git stash show stash@{0}

Show Stash Changes: git stash show -p stash@{0}

Use Custom Stash Item and Drop It: git stash pop stash@{0}

Use Custom Stash Item and Do Not Drop It: git stash apply stash@{0}

Delete Stash Item: git stash drop stash@{0}

Delete Stash: git stash clear


Compare Modified Files: git diff

Compare Modified Files and Highlight Changes: git diff --color-words index.php

Compare Modified Files Within Staging: git diff --staged

Compare Branches: git diff master..BRANCHNAME

Compare Branches Like Above: git diff --color-words master..BRANCHNAME^

Compare commits:




Compare Commits of File: git diff COMMITNAME index.php git diff COMMITNAME..COMMITNAMETWO index.php

Compare Without Caring About Spaces: git diff -b COMMITNAME..HEAD or: git diff --ignore-space-change COMMITNAME..HEAD

Compare Without Caring About All Spaces: git diff -w COMMITNAME..HEAD or: git diff --ignore-all-space COMMITNAME..HEAD

Useful Comparison: git diff --stat --summary COMMITNAME..HEAD

Blame: git blame -L10,+1 index.php


Show Commits: git log

Show Summary of Commits: git log --oneline

Show Summary of SHA-1 Commits: git log --format=oneline

Show Summary of Last Three Commits: git log --oneline -3

Show All Changes: git log -p

Show Every Commit Since Special Commit for Custom File: git log COMMITNAME.. index.php

Show Changes of Every Commit Since Special Commit for Custom File: git log -p COMMITNAME.. index.php

Show Stats and Summary of Commits: git log --stat --summary

Show History of Commits as Graph: git log --graph

Show Summary History of Commits as Graph: git log --oneline --graph --all --decorate


Show Remote: git remote

Show Remote Details: git remote -v

Add Remote Origin from GitHub Project: git remote add origin https://github.com/user/project.git

Add Remote Origin from Existing Empty Project: git remote add origin ssh://root@

Remove Origin: git remote rm origin

Show Remote Branches: git branch -r

Show All Branches: git branch -a

Compare: git diff origin/master..master

Push: git push -u origin master

Push to Default: git push origin master

Fetch: git fetch origin

Pull: git pull

Pull Branch: git pull origin BRANCHNAME

Merge Fetched Commits: git merge origin/master

Clone to Local: git clone https://github.com/user/project.git or: git clone ssh://user@domain.com/~/dir/.git

Clone to Local Folder: git clone https://github.com/user/project.git ~/dir/folder

Clone Specific Branch to Local: git clone -b BRANCHNAME \https://github.com/user/project.git\

Delete Remote Branch: git push origin :BRANCHNAME or: git push origin --delete BRANCHNAME


Create Zip-Archive: git archive --format zip --output filename.zip master

Export/Write Custom Log to File: git log --author=sven --all > log.txt

Releases & Version Tags

Show All Released Versions: git tag

Show All Released Versions with Comments: git tag -l -n1

Create Release Version: git tag v1.0.0

Create Release Version with Comment: git tag -a v1.0.0 -m 'COMMITMESSAGE'

Checkout a Specific Release Version: git checkout v1.0.0

Say Thanks

1 Response
Add your response

Frankie coderwall

Nice, thanks for sharing.

Besides git-scm docs, I use this cheatsheet

10 months ago ·
Filed Under

Awesome Job

Bea7f8f4 6732 11e8 88d8 450561e12155
Distributed Systems Engineer
Boston, San Francisco, Remote
Full Time