summaryrefslogtreecommitdiff
path: root/git/git-cheatsheet.txt
blob: 3c7366674e61e10ba94d44874d53d754034d2786 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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