blob: 65c5312e3ec11db32bdc8b90c1da47ca3b12c9cc (
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
============================================================ DOCUMENTATION =======================================================
GIT tutorial on kernel.org:
http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html
GIT "cheat sheet"
http://jonas.nitro.dk/git/quick-reference.html
GIT for those who are used to centralized SCMs:
http://media.pragprog.com/titles/tsgit/chap-005-extract.html
================================================================ HOWTO ===========================================================
To get a copy of the repo:
git clone http://your-username@scm.trinitydesktop.org/scm/git/<repository name>
To exclude items:
Create a file '.gitignore'
To add to the git repository (easiest and most efficient way):
git add .
(this will add everything in the folder (excluding stuff from .gitignore). It is intentionally a period because * will make git ignore already committed files.)
To commit to the git repository (this does not send to the remote server!):
git commit -a
(no need to do any git mv or git rm or any of that with the -a option.)
To pull recent commits from the remote git repository:
git pull
(do this before pushing so that you don't collide with other's commits.)
To push to the remote git repository:
git push origin master
(the 'origin master' part is optional after the first time.)
To branch (be careful! This is different from SVN.):
git branch <name>
(don't know what branch you're on? run "git branch" to see and list.)
To switch branches:
git checkout <branch name>
To tag a commit (like for releasing a tarball):
git tag -a <version> -m <message>
(ps: this will make webgit generate a tarball with this tag.
easy releases anyone?)
To tag a commit WITH GPG verification (secure release anyone?):
git tag -s <version> -m <message>
================================================================= NOTE ============================================================
GIT cannot store empty directories due to a intentional design limitation.
Therefore, this command should be run prior to any commits to ensure your empty directories stick around:
find . -type d -empty -exec touch {}/.gitignore \;
This will add a .gitignore to every empty directory.
================================================================ WORKFLOW ==========================================================
git clone http://your-username@scm.trinitydesktop.org/scm/git/<repository>
<make your changes, test, etc>
cd <repository checkout directory>
find . -type d -empty -exec touch {}/.gitignore \;
git add .
git commit -a
git pull
git push
|