May 03, 2023
Git is the free and open source distributed version control system that's responsible for everything GitHub related that happens locally on your computer. This cheat sheet features the most important and commonly used Git commands for easy reference.
You can get the PDF version of this cheat sheet for free here:
Download cheat sheet PDFAccount Setup
Commands for configuring user information used across all local repositories.
Set a name that is identifiable for credit when review version history
git config --global user.name "[firstname lastname]"
Set an email address that will be associated with each history marker
git config --global user.email "[valid-email]"
Repository Setup
Commands for initializing and cloning repositories
Add a git repository to an existing local folder
cd path-to-folder git init
Retrieve an entire repository from a hosted location via URL
git clone [url]
Changes
Commands for working with local changes
Show modified files in working directory, staged for your next commit
git status
Select (stage) a file as for your next commit
git add [file]
Unstage a file from your next commit (while keeping the changes)
git reset [file]
Show the difference between staged and unstaged files
git diff
Show the difference between what is staged and what is not
git diff --staged
Commit your staged changes
git commit -m "[descriptive message]"
Branches
Commands for creating, changing and managing branches. Isolating work in branches, changing context, and integrating changes
List your branches. a * will appear next to the currently active branch
git branch
Create a new branch
git branch [branch-name]
Create and switch to a new branch
git checkout -b [branch-name]
Switch to another branch
git checkout [branch-name]
Merge the specified branch’s history into the current one
git merge [branch]
Show all commits in the current branch’s history
git log
Remote repositories
Commands for retrieving updates from another repository and updating local repos.
Add a remote
git remote add [alias] [url]
Fetch all the branches from that Git remote
git fetch [alias]
Update the current branch from its remote counterpart
git pull [alias]/[branch]
Transmit local branch commits to the remote branch
git push [alias] [branch]
Stashing
Commands for temporarily saving and applying code changes.
Save modified and staged changes
git stash
List the saved stash entries
git stash list
Apply the latest stash entry.
git stash pop
Discard the latest stash entry
git stash drop
Rewrite History
Commands for changing the history.
Rewriting branches, updating commits and clearing history
git rebase [branch]
Apply any commits of current branch ahead of specified one
git reset --hard [commit]
Clear staging area, rewrite working tree from specified commit
History
Commands for viewing the history.
Show the commit history for the currently active branch
git log
Show the commits on branchA that are not on branchB
git log branchB..branchA
Show the commits that changed file, even across renames
git log --follow [file]
Show the diff of what is in branchA that is not in branchB
git diff branchB...branchA
Show any object (branch, hash...) in Git in a human-readable format
git show [SHA]
Ignore patterns
Commands and patterns for ignoring files.
Prevent unintentionally staging or commiting files globally
git config --global core.excludesfile [file]
Prevent unintentionally staging or commiting files in a project by adding it to .gitignore
echo [file] >> .gitignore
Pattern examples
# ignore all files inside the folder node_modules node_modules/ # ignore all files ending with txt *.txt # ignore all folders starting with pattern pattern*/
PDF version
You can get the PDF version of this cheat sheet for free here:
Download cheat sheet PDF