Git cheat sheet

Git is the open source decentralized version control system. This cheat sheet provides quick access to commonly used Git command instructions.


Git distributions for Linux and POSIX systems are available from the official Git SCM website : http://git-scm.com


GitHub provides desktop clients that include a graphical interface for the most common manipulations and an automatically updating command line edition of Git for advanced scenarios.


Configure user information for all local repositories

Define the name you want associated with all your commit operations

$ git config --global user.name "[name]"

Define the email you want associated with all your commit operations

$ git config --global user.email "[email]"

Enable colorization of command line output

$ git config --global color.ui auto


Start a new repository or get one from an existing URL

Create a local repository from the specified name

$ git init [project-name]

Download a project and all its version history

$ git clone [url]


View changes and perform a commit operation

List all new files and modified files to commit

$ git status

Show file changes that are not yet indexed

$ git diff

Add a snapshot of a specific file, in preparation for version tracking

$ git add [fichier]

Add a snapshot of all the files, in preparation for version tracking

$ git add

Show file differences between the indexed version and the latest version

$ git diff --staged

Remove a specific file from the index, but keep its content

$ git reset [file]

Commit file snapshots permanently in version history

$ git commit -m "[message]"


Manage branches

Get the list of all local branches in the current repository

$ git branch

Create a new branch

$ git branch [branch-name]

Switch to the specified branch and update the working directory

$ git checkout [branch-name]

Merge in the current branch the history of the specified branch

$ git merge [branch-name]

Delete a branch

$ git branch -d [branch–name]


Synchronize version history

Get all history from the named repository

$ git fetch [repository-name]

Get all history from the remote repository and incorporate changes in the local current repository

$ git pull

$ git push [branch-name] pull a specified remote branch

Send all local branch commits to the remote repository (GitHub, Gitlab or other Git servers)

$ git push

$ git push [branch-name] send a specified local branch


Correct errors and manage correction history

Undo all commits after a commit, keeping changes locally

$ git reset [commit]

Delete all history and changes made after the specified commit

$ git reset --hard [commit]