Git sheet sheet commands
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