Git Commands Cheat Sheet
Here are some of the most common and useful Git commands
Git Configuration
Command |
Description |
$ git config |
đ ī¸ Get and set configuration variables for Git. |
$ git config --global user.name "User name" |
âī¸ Set the name. |
$ git config --global user.email "your-email@example.com" |
âī¸ Set the email. |
$ git config --global core.editor "your-editor" |
đ Set the default editor. |
$ git config --global color.ui auto |
đ Turns on color output for Git commands. |
$ git config --list |
âšī¸ See all your settings. |
Create Project
Command |
Description |
$ git init |
đ Create a local repository. |
$ git clone |
đ Clone a remote repository. |
Local Changes
Command |
Description |
$ git add file-path |
â Adds a file to the staging area. |
$ git add . |
â Add all files to the staging area. |
$ git commit -m " Commit Message" |
đž Commit file permanently in the version history. |
Track Changes
Command |
Description |
$ git diff |
đ Shows the differences between your folder and the stage. |
$ git diff --staged |
đ Shows the differences between the stage and the last commit. |
$ git diff HEAD |
đ Track the changes after committing a file. |
$ git diff <branch-2> |
đ Track the changes between two commits. |
$ git status |
âšī¸ Display the state of the working directory and the staging area. |
$ git show |
âšī¸ Show the newest commit on a branch. |
$ git diff -- file-path |
đ Show changes for a particular file. |
$ git diff branch-1 branch-2 --name-only |
đ Show difference between two branches (file names only). |
$ git diff branch-1 branch-2 -- file-path |
đ Show differences between two branches for a specific file. |
Commit History
Command |
Description |
$ git log |
đ Display the most recent commits and the status of the head. |
$ git log -oneline |
đ Display the output as one commit per line. |
$ git log -stat |
đ Displays the files that have been modified. |
$ git log -p |
đ Display the modified files with location. |
Ignoring files
Command |
Description |
$ touch .gitignore |
đ Create a file named .gitignore to list ignored files. |
A collection of useful .gitignore
templates for different languages or frameworks: gitignore
Branching
Git branch
Command |
Description |
$ git branch |
đŋ Show a list of all branches in your local repository. |
$ git branch -a |
đŋ Show all branches in both local and remote repositories. |
$ git branch -r |
đŋ Show only remote branches. |
$ git branch name |
đŋ Creates a new branch called name based on the current commit. |
$ git branch name hash |
đŋ Create a new branch based on a specific commit identified by its hash. |
Git checkout
Command |
Description |
$ git checkout branch-name |
đ Switch between branches in a repository. |
$ git checkout -b branch-name |
đ Create a new branch and switch to it. |
Git stash
Command |
Description |
$ git stash |
đĻ Stash current work. |
$ git stash save "your message" |
đĻ Saving stashes with a message. |
$ git stash list |
đĻ Check the stored stashes. |
$ git stash apply |
đĻ Re-apply the changes that you just stashed. |
$ git stash show |
đĻ Track the stashes and their changes. |
$ git stash pop |
đĻ Re-apply the previous commits. |
$ git stash drop |
đĻ Delete the most recent stash from the queue. |
$ git stash clear |
đĻ Delete all the available stashes at once. |
$ git stash branch |
đĻ Stash work on a separate branch. |
Merging
Git merge
Command |
Description |
$ git merge name |
đ¤ Merges branch called name into the current branch, creating a new commit that incorporates both changes. |
$ git merge --abort |
đ¤ Aborts the merge process and restores the original state of your project, if there are any conflicts or errors during the merge. |
Git rebase
Command |
Description |
$ git rebase |
đ Apply a sequence of commits from one branch to another. |
$ git rebase -continue |
đ Continue the rebasing process after resolving conflicts manually. |
$ git rebase --skip |
đ Skip a commit when rebasing. |
Remote
Command |
Description |
$ git remote |
đ Show a list of all remote repositories associated with your local repository. |
$ git remote -v |
đ Check the configuration of the remote server. |
$ git remote show name |
đ Show information about a specific remote repository called name . |
$ git remote add origin repo-url |
đ Add a remote for the repository. |
$ git remote rm |
đ Remove a remote connection from the repository. |
$ git remote rename |
đ Rename a remote server. |
$ git remote show |
đ Show additional information about a particular remote. |
$ git remote set-url name url |
đ Change the URL of a remote repository called name to url. |
Pushing Updates
Command |
Description |
$ git push origin master |
đ¤ Push data to the remote repository. |
$ git push --all |
đ¤ Push all branches to the default remote repository. |
$ git push --all origin |
đ¤ Specify the remote repository explicitly. |
$ git push -f |
đ¤ Force push data to the remote repository. |
Pulling Updates
Git pull
Command |
Description |
$ git pull |
đĨ Pull changes from the default remote repository and branch. |
$ git pull origin master |
đĨ Specify the remote repository and branch explicitly. |
Git fetch
Command |
Description |
$ git fetch <repository URL> |
đĨ Fetch the remote repository. |
$ git fetch |
đĨ Fetch a specific branch. |
$ git fetch --all |
đĨ Fetch all branches simultaneously. |
$ git fetch origin |
đĨ Synchronize the local repository. |
Undo Changes
Git revert
Command |
Description |
$ git revert HEAD |
âĒ Undo the latest commit. |
$ git revert hash |
âĒ Create a new commit that undoes changes made by a specific commit identified by its hash. |
$ git revert branch |
âĒ Undo all commits on a branch. |
Git reset
Command |
Description |
$ git reset --soft hash |
âĒ Reset your current branch to a specific commit identified by its hash, keeping your working directory and staging area unchanged. |
$ git reset --mixed hash |
âĒ Reset your current branch to a specific commit identified by its hash, resetting your staging area to match it, but keeping your working directory unchanged. |
$ git reset --hard hash |
âĒ Reset your current branch to a specific commit identified by its hash, resetting your working directory and staging area to match it, discarding any changes made since then. |
Removing Files
Command |
Description |
$ git rm file |
đī¸ Delete a file from both your working directory and staging area, staging the deletion for the next commit. |
$ git rm --cached file |
đī¸ Delete a file only from the staging area, but not from the working directory. |
Reference