rramos.github.io

18 Sep, 2016 - About 3 minutes

Git Cheat Sheet

Intro

As I’m always forgetting how to reset my local changes from origin HEAD. This cheat sheet might help.

Create

Clone an existing repository

git clone ssh://user@domain.com/repo.git

Create a new local repository

git init

Local Changes

Changed files in your working directory

git status

Changes to tracked files

git diff

Add all current changes to the next commit

git add .

Add some changes in <file> to the next commit

git add -p <file>

Commit all local changes in tracked files

git commit -a

Commit previously staged changes

git commit

Change the last commit (Don’t amend publish commits)

git commit --amend

Branches & Tags

List all existing branches

git branch -av

Switch HEAD branch

git checkout <branch>

Create new branch based on your current HEAD

git branch <new-branch>

Create new tracking branch based on a remote branch

git checkout --track <remote/branch>

Delete a local branch

git branch -d <branch>

Mark the current commit with a tag

git tag <tag-name>

Update & Publish

List all currently configured remotes

git remote -v

Show information about a remote

git remote show <remote>

Add new remote repository, named <remote>

git remote add <shortname> <url>

Download all changes from <remote>, but don’t integrate into HEAD

git fetch <remote>

Download changes and directly merge/integrate into HEAD

git pull <remote> <branch>

Publish local changes on a remote

git push <remote> <branch>

Delete a branch on the remote

git branch -dr <remote/branch>

Publish your tags

git push --tags

Merge & Rebase

Merge <branch> into your current HEAD, without fast-forward

git merge --no-ff <branch>

Rebase your current HEAD onto <branch>

git rebase <branch>

Abort a rebase

git rebase --abort

Continue a rebase after resolving conflicts

git rebase --continue

Use your configured merge tool to solve conflicts

git mergetool

Use your editor to manually solve conflicts and (after resolving) mark file as resolved

git add <resolved-file>
git rm <resolved-file>

Undo

Discard all local changes in your working directory

git reset --hard HEAD

Discard local changes in a specific file

git checkout HEAD <file>

Revert a commit (by producing a new commit with contrary changes)

git revert <commit>

Reset your HEAD pointer to a previous commit, and discard all changes since then

git reset --hard <commit>

…and preserve all changes as upstaged changes

git reset <commit>

…and preserve uncommitted local changes

git reset --keep <commit>

Commit History

Show all commits, starting with newest

git log

Show changes over time for a specific file

git log -p <file>

Who changed what and when in <file>

git blame <file>

Git plugins

Store credential in manager

git config credential.helper 'store'

Activate gpg signature

git config commit.gpgsign true

Reference

OLDER > < NEWER