Git Cheatsheet EN Grey PDF
Git Cheatsheet EN Grey PDF
Create a new local repository Switch HEAD branch Rebase your current HEAD onto <branch>
$ git init $ git checkout <branch> Don‘t rebase published commits!
$ git rebase <branch>
Create a new branch based
LOCAL CHANGES on your current HEAD Abort a rebase
$ git branch <new-branch> $ git rebase --abort
Changed files in your working directory
$ git status Create a new tracking branch based on Continue a rebase after resolving conflicts
a remote branch $ git rebase --continue
Changes to tracked files
$ git checkout --track <remote/bran-
$ git diff ch> Use your configured merge tool to
solve conflicts
Add all current changes to the next commit Delete a local branch
$ git mergetool
$ git add . $ git branch -d <branch>
Use your editor to manually solve conflicts
Add some changes in <file> to the next commit Mark the current commit with a tag and ( after resolving) mark file as resolved
$ git add -p <file> $ git tag <tag-name> $ git add <resolved-file>
Commit all local changes in tracked files $ git rm <resolved-file>
$ git commit -a UPDATE & PUBLISH
Commit previously staged changes List all currently configured remotes UNDO
$ git commit $ git remote -v
Discard all local changes in your working
Change the last commit Show information about a remote directory
Don‘t amend published commits! $ git remote show <remote> $ git reset --hard HEAD
$ git commit --amend
Add new remote repository, named <remote> Discard local changes in a specific file
$ git remote add <shortname> <url> $ git checkout HEAD <file>
COMMIT HISTORY
Download all changes from <remote>, Revert a commit (by producing a new commit
Show all commits, starting with newest but don‘t integrate into HEAD with contrary changes)
$ git log $ git fetch <remote> $ git revert <commit>
Show changes over time for a specific file Download changes and directly Reset your HEAD pointer to a previous commit
$ git log -p <file> merge/integrate into HEAD …and discard all changes since then
$ git pull <remote> <branch> $ git reset --hard <commit>
Who changed what and when in <file>
$ git blame <file> Publish local changes on a remote …and preserve all changes as unstaged
$ git push <remote> <branch> changes
$ git reset <commit>
Delete a branch on the remote
$ git branch -dr <remote/branch> …and preserve uncommitted local changes
$ git reset --keep <commit>
Publish your tags
$ git push --tags
VERSION CONTROL
BEST PRACTICES
COMMIT RELATED CHANGES TEST CODE BEFORE YOU COMMIT USE BRANCHES
A commit should be a wrapper for related Resist the temptation to commit some- Branching is one of Git‘s most powerful
changes. For example, fixing two different thing that you «think» is completed. Test it features - and this is not by accident: quick
bugs should produce two separate commits. thoroughly to make sure it really is completed and easy branching was a central requirement
Small commits make it easier for other de- and has no side effects (as far as one can tell). from day one. Branches are the perfect tool
velopers to understand the changes and roll
While committing half-baked things in your to help you avoid mixing up different lines
them back if something went wrong.
local repository only requires you to forgive of development. You should use branches
With tools like the staging area and the abi-
yourself, having your code tested is even more extensively in your development workflows:
lity to stage only parts of a file, Git makes it
easy to create very granular commits. important when it comes to pushing/sharing for new features, bug fixes, ideas…
your code with others.