Git Cheat Sheet

Git is a free and open source distributed version control system. Followings are some of the advantages of using git version control system:

  • branching capabilities
  • light weight
  • speed
  • reliable
  • secure
  • open source

Refer to following table to find most commonly used git commands:

Command Description
git init <dir> creates empty git repo in specified directory on local machine
git clone <repo> <name> clones remote repository to local machine with specified name
git config --global user.name <name> defines author name for all commits
git config --global user.email <email> defines author email for all commits
git add <dir> stage all changes in specified directory on local machine
git commit -m <message> creates a new commit with specified commit message
git status checks the status of current git repo, which files are staged, unstaged, and untracked
git diff shows differnce between last commit and current changes on local machine
git revert <commit> undo changes of specified commit
git reset <file> unstages a file without overwriting any changes
git clean -n shows which files would be removed from working directory
git log -<limit> shows lists of commits limited by -<limit> option
git log --stat Include which files were altered and the relative number of lines that were added or deleted from each of them
git log --author=<pattern> search for commits by a particular author.
git log --grep=<pattern> search for commits by a particular commit message.
git log -p display the full diff of each commit.
git branch list all of the branches in your repo.
git branch <name> create a new branch with the name .
git checkout -b <name> create and check out a new branch named <name>. Drop the -b flag to checkout an existing branch.
git merge <branch> merge <branch> into the current branch.
git pull pull all remote changes to local branch
git pull <branch> fetch the specified remote’s copy of current branch and immediately merge it into the local copy
git fetch <remote> <branch> fetches a specific <branch>, from the repo.
git push <remote> <branch> push the branch to , along with necessary commits and objects. Creates named branch in the remote repo if it doesn’t exist.
git diff HEAD show difference between working directory and last commit.
git diff --cached show difference between staged changes and last commit
git reset reset staging area to match most recent commit, but leave the working directory unchanged.
git reset --hard reset staging area and working directory to match most recent commit and overwrites all changes in the working directory.