Tag git tag -a x.y.z -m "Tag version x.y.z" Squash multiple commits into one git rebase -i HEAD~ 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 Delete a branch from a remote repository git push origin :experimental Find a ref that matches experimental in the origin repository (e.g. refs/heads/experimental), and delete it. Using the push.sh script: ./push.sh : Rebasing Local (e.g., from a feature branch to master): git rebase [] If is not specified, current branch is used. If is specified, it is checked out. Remote (e.g., merge someone else's changes): git fetch git rebase origin[/master] git push --tags origin