From: W. Trevor King Date: Mon, 10 Jun 2013 16:54:29 +0000 (-0400) Subject: version-control/git/cheet-sheet.md: Add a Git-specific cheat sheet X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=be794457b3a356cad9a7b15106b3348517b98dde;p=swc-version-control-git.git version-control/git/cheet-sheet.md: Add a Git-specific cheat sheet --- diff --git a/version-control/git/cheat-sheet.md b/version-control/git/cheat-sheet.md new file mode 100644 index 0000000..0b6a9bd --- /dev/null +++ b/version-control/git/cheat-sheet.md @@ -0,0 +1,102 @@ +Basic use +========= + +* Create a local repository from a public repository at `$URL`: + + $ git clone $URL + +* Stage a (possibly new) file (or files) for the next commit: + + $ git add $FILES + +* Remove a file (or files) with the next commit: + + $ git rm $FILES + +* Commit any local changes to the local repository: + + $ git commit -a -m "$MESSAGE" + +* Push any local commits to a public repository (e.g. `origin`): + + $ git push origin + +Merging +======= + +* Update your local view of a public repository (e.g. `origin`): + + $ git fetch origin + +* Merge new commits from another branch (e.g. the `origin/master` + branch tracking the `master` branch of the `origin` repository): + + $ git merge origin/master + +* Mark conflicts as resolved: + + $ git add $FILES + +Comparing changes +================= + +* Compare the current working directory to the last commit: + + $ git diff HEAD + +Browsing history +================ + +* Check your local state: + + $ git status + +* View past commits: + + $ git log + +* Who wrote this line, and what were they thinking? + + $ git blame $FILES + $ git show $COMMIT_HASH + +Recovering old versions +======================= + +* Undo local changes to `$FILES` since the last commit: + + $ git checkout $FILES + +* Checkout `$FILES` as they were during `$COMMIT`: + + $ git checkout $COMMIT -- $FILES + +* Create a new commit backing out changes made by an old commit: + + $ git revert $COMMIT + +Setting up a repository +======================= + +* Create a new repository in the current directory: + + $ git init + +Provenance +========== + +* Tag releases: + + $ git tag v1.2.3 + $ git push --tags origin + +* Incorperate the tags into any releases. For example, the Git + project extracts [version information][git-version-gen] when you + [compile the project][git-makefile]. Most Python projects just + increment `package.__version__` by hand + (e.g. [pygit2][pygit2-version]). + + +[git-version-gen]: http://git.kernel.org/cgit/git/git.git/tree/GIT-VERSION-GEN +[git-makefile]: http://git.kernel.org/cgit/git/git.git/tree/Makefile +[pygit2-version]: https://github.com/libgit2/pygit2/blob/master/pygit2/version.py