Git Cheatsheet
A quick reference for common Git commands, categorized for ease of use.
Setup & Configuration
git config --global user.name "[name]"Set the name you want attached to your commit transactions.
git config --global user.email "[email address]"Set the email you want attached to your commit transactions.
git config --global color.ui autoEnable helpful colorization of command line output.
git init [project-name]Create a new local repository with the specified name. If project-name is omitted, initializes in the current directory.
git clone [url]Download a project and its entire version history from a remote repository.
Staging & Committing Changes
git statusList all new or modified files to be committed.
git diffShow file differences not yet staged.
git diff --stagedShow file differences between staging and the last file version.
git add [file]Add a file to the staging area (snapshot for versioning).
git add .Add all new and modified files to the staging area.
git reset [file]Unstage a file, but preserve its contents.
git commit -m "[descriptive message]"Record file snapshots permanently in version history.
git commit --amendChange the last commit. Do not amend published commits.
Branching & Merging
git branchList all local branches. Add -av to see all branches (local and remote-tracking).
git branch [branch-name]Create a new branch.
git checkout [branch-name]Switch to the specified branch and update the working directory.
git switch [branch-name]Switch to the specified branch (newer, safer alternative to checkout).
git switch -c [new-branch-name]Create and switch to a new branch.
git merge [branch-name]Combine the specified branch’s history into the current branch.
git rebase [branch-name]Reapply commits of current branch onto [branch-name].
git branch -d [branch-name]Delete the specified local branch (if merged).
git branch -D [branch-name]Force delete the specified local branch (even if not merged).
Working with Remotes
git remote -vList all currently configured remote repositories.
git remote add [shortname] [url]Add a new remote Git repository (e.g., origin).
git fetch [remote-name]Download all history from the remote repository’s branches.
git pull [remote-name] [branch-name]Fetch and merge changes from the remote server to your working directory.
git push [remote-name] [branch-name]Upload all local branch commits to the remote repository.
git push [remote-name] --tagsPush all local tags to the remote repository.
git push [remote-name] :[branch-name]Delete a branch on the remote repository (use with caution).
git push [remote-name] --delete [branch-name]Delete a branch on the remote repository (newer syntax).
Viewing History & Undoing Changes
git logList version history for the current branch.
git log --oneline --graph --decorate --allShow a condensed, graphical log of all branches.
git log [file]List version history for a file, including renames.
git diff [commit1] [commit2]Show content differences between two commits.
git show [commit]Output metadata and content changes of the specified commit.
git reset --hard HEADDiscard all local changes in your working directory.
git reset --hard [commit]Discard all history and changes back to the specified commit.
git revert [commit]Create a new commit that undoes all of the changes made in [commit], then apply it to the current branch.
About Git
Git is a distributed version control system designed to handle everything from small to very large projects with speed and efficiency. It allows multiple developers to work on a project simultaneously without overwriting changes made by others.
This cheatsheet provides a quick reference to some of the most commonly used Git commands. For more detailed information, consult the official Git documentation.