DEV Community

Quazi Mohammad Aldin Fardin
Quazi Mohammad Aldin Fardin

Posted on • Originally published at blog.aldinn.com on

Git and GitHub Command Cheat Sheet

The essential Git commands every developer must know

The essential Git commands every developer must know

This cheat sheet covers all of the Git commands I’ve covered in my Ultimate Git

Mastery blog.

✓ Creating snapshots

✓ Browsing history

✓ Branching & merging

✓ Collaboration using Git & GitHub

✓ Rewriting history

The essential Git commands every developer must know

Creating Snapshots‌

Initializing a repository

git init 
Enter fullscreen mode Exit fullscreen mode

Staging files

git add file1.js 
# Stages a single file 

git add file1.js file2.js
# Stages multiple files 

git add *.js 
# Stages with a pattern

git add . 
# Stages the current directory and all its content
Enter fullscreen mode Exit fullscreen mode

Viewing the status

git status 
# Full status

git status -s 
# Short status
Enter fullscreen mode Exit fullscreen mode

Committing the staged files

git commit -m “Message” 
# Commits with a one-line message

git commit 
# Opens the default editor to type a long message
Enter fullscreen mode Exit fullscreen mode

Skipping the staging area

git commit -am “Message”
Enter fullscreen mode Exit fullscreen mode

Removing files

git rm file1.js 
# Removes from working directory and staging area 

git rm --cached file1.js 
# Removes from staging area only
Enter fullscreen mode Exit fullscreen mode

Renaming or moving files

git mv file1.js file1.txt
Enter fullscreen mode Exit fullscreen mode

Viewing the staged/unstaged changes

git diff 
# Shows unstaged changes

git diff --staged 
# Shows staged changes

git diff --cached 
# Same as the above
Enter fullscreen mode Exit fullscreen mode

Viewing the history

git log 
# Full history

git log --oneline 
# Summary

git log --reverse 
# Lists the commits from the oldest to the newest
Enter fullscreen mode Exit fullscreen mode

Viewing a commit

git show 921a2ff 
# Shows the given commit

git show HEAD 
# Shows the last commit

git show HEAD~2 
# Two steps before the last commit

git show HEAD:file.js 
# Shows the version of file.js stored in the last commit
Enter fullscreen mode Exit fullscreen mode

Unstaging files (undoing git add)

git restore --staged file.js 
# Copies the last version of file.js from repo to index
Enter fullscreen mode Exit fullscreen mode

Discarding local changes

git restore file.js 
# Copies file.js from index to working directory 


git restore file1.js file2.js 
# Restores multiple files in working directory

git restore . 
# Discards all local changes (except untracked files) 

git clean -fd 
# Removes all untracked files
Enter fullscreen mode Exit fullscreen mode

Restoring an earlier version of a file

git restore --source=HEAD~2 file.js
Enter fullscreen mode Exit fullscreen mode

Browsing History‌

The essential Git commands every developer must know

Viewing the history

git log --stat 
# Shows the list of modified files

git log --patch 
# Shows the actual changes (patches)
Enter fullscreen mode Exit fullscreen mode

Filtering the history

git log -3 
# Shows the last 3 entries

git log --author=“Mosh”

git log --before=“2020-08-17”

git log --after=“one week ago”

git log --grep=“GUI” 
# Commits with “GUI” in their message

git log -S“GUI” 
# Commits with “GUI” in their patches 

git log hash1..hash2 
# Range of commits


git log hash1..hash2 
# Range of commits

git log file.txt 
# Commits that touched file.txt
Enter fullscreen mode Exit fullscreen mode

Formatting the log output

git log --pretty=format:”%an committed %H”
Enter fullscreen mode Exit fullscreen mode

Creating an alias

git config --global alias.lg “log --oneline"
Enter fullscreen mode Exit fullscreen mode

Viewing a commit

git show HEAD~2

git show HEAD~2:file1.txt 
# Shows the version of file stored in this commit
Enter fullscreen mode Exit fullscreen mode

Comparing commits

git diff HEAD~2 HEAD 
# Shows the changes between two commits 

git diff HEAD~2 HEAD file.txt 
# Changes to file.txt only
Enter fullscreen mode Exit fullscreen mode

Checking out a commit

git checkout dad47ed 
# Checks out the given commit 

git checkout master
# Checks out the master branch
Enter fullscreen mode Exit fullscreen mode

Finding a bad commit

git bisect start

git bisect bad 
# Marks the current commit as a bad commit 

git bisect good ca49180 
# Marks the given commit as a good commit 

git bisect reset 
# Terminates the bisect session
Enter fullscreen mode Exit fullscreen mode

Finding contributors

git shortlog
Enter fullscreen mode Exit fullscreen mode

Viewing the history of a file

git log file.txt 
# Shows the commits that touched file.txt

git log --stat file.txt 
# Shows statistics (the number of changes) for file.txt 

git log --patch file.txt 
# Shows the patches (changes) applied to file.txt
Enter fullscreen mode Exit fullscreen mode

Finding the author of lines

git blame file.txt 
# Shows the author of each line in file.txt
Enter fullscreen mode Exit fullscreen mode

Tagging

git tag v1.0 
# Tags the last commit as v1.0 

git tag v1.0 5e7a828 
# Tags an earlier commit

git tag # Lists all the tags

git tag -d v1.0 # Deletes the given tag
Enter fullscreen mode Exit fullscreen mode

Branching & Merging‌

The essential Git commands every developer must know

Managing branches

git branch bugfix 
# Creates a new branch called bugfix 

git checkout bugfix 
# Switches to the bugfix branch

git switch bugfix 
# Same as the above 

git switch -C bugfix 
# Creates and switches

git branch -d bugfix 
# Deletes the bugfix branch
Enter fullscreen mode Exit fullscreen mode

Comparing branches

git log master..bugfix 
# Lists the commits in the bugfix branch not in master 

git diff master..bugfix 
# Shows the summary of changes
Enter fullscreen mode Exit fullscreen mode

Stashing

git stash push -m “New tax rules” 
# Creates a new stash 


git stash list 
# Lists all the stashes

git stash show stash@{1} 
# Shows the given stash

git stash show 1 
# shortcut for stash@{1}

git stash apply 1 
# Applies the given stash to the working dir

git stash drop 1 
# Deletes the given stash

git stash clear 
# Deletes all the stashes
Enter fullscreen mode Exit fullscreen mode

Merging

git merge bugfix 
# Merges the bugfix branch into the current branch 

git merge --no-ff bugfix 
# Creates a merge commit even if FF is possible

git merge --squash bugfix 
# Performs a squash merge

git merge --abort 
# Aborts the merge
Enter fullscreen mode Exit fullscreen mode

Viewing the merged branches

git branch --merged 
# Shows the merged branches 

git branch --no-merged 
# Shows the unmerged branches
Enter fullscreen mode Exit fullscreen mode

Rebasing

git rebase master 
# Changes the base of the current branch
Enter fullscreen mode Exit fullscreen mode

Cherry picking

git cherry-pick dad47ed 
# Applies the given commit on the current branch
Enter fullscreen mode Exit fullscreen mode

Collaboration‌

The essential Git commands every developer must know

Cloning a repository

git clone url
Enter fullscreen mode Exit fullscreen mode

Syncing with remotes

git fetch origin master 
# Fetches master from origin 

git fetch origin 
# Fetches all objects from origin

git fetch 
# Shortcut for “git fetch origin”

git fetch 
# Shortcut for “git fetch origin”

git pull 
# Fetch + merge

git push origin master 
# Pushes master to origin

git push 
# Shortcut for “git push origin master”
Enter fullscreen mode Exit fullscreen mode

Sharing tags

git push origin v1.0 
# Pushes tag v1.0 to origin 
git push origin —delete v1.0
Enter fullscreen mode Exit fullscreen mode

Sharing branches

git branch -r 
# Shows remote tracking branches

git branch -vv 
# Shows local & remote tracking branches 

git push -u origin bugfix 
# Pushes bugfix to origin

git push -d origin bugfix 
# Removes bugfix from origin
Enter fullscreen mode Exit fullscreen mode

Managing remotes

git remote 
# Shows remote repos

git remote add upstream url 
# Adds a new remote called upstream 

git remote rm upstream 
# Remotes upstream
Enter fullscreen mode Exit fullscreen mode

Rewriting History‌

The essential Git commands every developer must know

Undoing commits

git reset --soft HEAD^ 
# Removes the last commit, keeps changed staged 

git reset --mixed HEAD^ 
# Unstages the changes as well

git reset --hard HEAD^ 
# Discards local changes
Enter fullscreen mode Exit fullscreen mode

Reverting commits

git revert 72856ea 
# Reverts the given commit

git revert HEAD~3.. 
# Reverts the last three commits 
git revert --no-commit HEAD~3..
Enter fullscreen mode Exit fullscreen mode

Recovering lost commits

git reflog 
# Shows the history of HEAD

git reflog show bugfix 
# Shows the history of bugfix pointer
Enter fullscreen mode Exit fullscreen mode

Amending the last commit

git commit --amend
Enter fullscreen mode Exit fullscreen mode

Interactive rebasing

git rebase -i HEAD~5
Enter fullscreen mode Exit fullscreen mode

রিসোর্স সমুহ:

  1. official Git project site
  2. ProGit book
  3. Git command list
  4. on-demand training courses
  5. on-demand training courses
  6. online Git course
  7. git-cheat-sheet-education (github.com)
  8. Git cheat sheet | Atlassian Git Tutorial

What is git ?

The post Git and GitHub Command Cheat Sheet appeared first on Aldinn Rocks.

Top comments (0)