summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--git/git-cheatsheet.txt51
1 files changed, 51 insertions, 0 deletions
diff --git a/git/git-cheatsheet.txt b/git/git-cheatsheet.txt
new file mode 100644
index 0000000..3c73666
--- /dev/null
+++ b/git/git-cheatsheet.txt
@@ -0,0 +1,51 @@
+Tag
+
+ git tag -a x.y.z -m "Tag version x.y.z"
+
+Squash multiple commits into one
+
+ git rebase -i HEAD~<N>
+
+ http://www.gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html
+
+Change commit message
+
+ git commit --amend
+
+Revert uncommited changes
+
+ git reset --hard HEAD
+
+Setup remote repository
+
+ On remote:
+
+ 1. mkdir proj.git
+ 2. chgrp scm proj.git
+ 2. cd proj.git
+ 3. git --bare init --shared=all
+ 4. chgrp -R scm ../proj.git
+ 5. edit description
+ 6. cd hooks
+ 7. mv post-update.sample post-update
+
+ On local:
+
+ 1. git remote add origin scm.codesynthesis.com:/var/scm/proj/proj.git
+ 2. git push --tags origin master
+ 3. # blow the local project and do clone
+
+Rebasing
+
+ Local (e.g., from a feature branch to master):
+
+ git rebase <src> [<dst>]
+
+ If <dst> is not specified, current branch is used. If <dst> is
+ specified, it is checked out.
+
+ Remote (e.g., merge someone else's changes):
+
+ git fetch
+ git rebase origin[/master]
+ git push --tags origin