add some docu and TODOs
[elektra-initiative:libelektra.git] / doc / GIT
1 = INTRODUCTION =
2
3 == BASIC GIT COMMANDS ==
4
5 git add .
6 git commit -a
7
8 == BASIC Configuration ==
9
10 make sure to do:
11 git config --global merge.ff false
12 git config merge.ff false
13
14 == Remote Branches ==
15
16 To list all remote branches use:
17  git-branch -a
18
19 To checkout a remote branch initially use:
20  git-checkout -b <branchname> origin/<branchname>
21
22 Once you have done this, it will be a local branch, too.
23 Following remote branches should exist:
24
25  master
26
27 This is the development branch. Please try
28 to not work directly on it, but instead
29 you should use feature branches. So the
30 only commits on master should be non-fastforward
31 merges from features branches. Commits on
32 master should always compile and all test
33 cases should pass successfully.
34 (see config option above)
35
36  release
37
38 Once the master is ready to be released,
39 it should be merged to the release branch
40 with --no-ff. So on the release branch
41 there are only merges from master.
42 (see config option above)
43
44  debian
45
46 Is the branch to be used to build debian
47 packages. It additionally contains the
48 debian folder. Only debian related commits
49 should be on the debian branch - otherwise
50 it should only contain --no-ff merges from
51 release.  (see config option above)
52
53 == Local branches ==
54
55 You should always make your own feature branch with:
56 git-checkout -b <feature-branch-name>
57
58 On this branch it is not so important that every
59 commit compiles or all test cases run.
60
61 To merge a branch use (no-fastforward):
62 git-merge --no-ff <branchname>
63
64 If you already did some commits, but want them in a branch,
65 you can do:
66 git-branch foo
67 git reset HEAD^^  (für 2 commits zurück oder)
68 git reset origin/master
69
70 git-ref-log # recover
71
72
73 == Gitorious merge requests ==
74
75 git checkout -b integration
76 git pull origin refs/merge-requests/892
77 git log --pretty=oneline --abbrev-commit master..integration
78
79
80 http://qt-jambi.org/developers/merge_requests
81 http://blog.gitorious.org/2009/07/15/new-merge-request-functionality/
82
83
84
85 = MIGRATION =
86
87 This git folder was imported initially with the command:
88 git svn clone -T trunk -t tags -b unstable https://svn.libelektra.org/svn/elektra
89
90 then every remote branch (git branch -a) was checked out using:
91 git checkout -b $BRANCH $BRANCH
92
93 == OTHER TRY ==
94
95 (lead to elektra-history)
96
97 git svn clone --authors-file=/home/markus/Projekte/Elektra/current/doc/GIT_AUTHORS --prefix=svn/ -T trunk -t tags -b unstable https://svn.libelektra.org/svn/elektra
98
99
100 git svn-abandon-fix-refs
101 git svn-abandon-cleanup
102
103 (nice authors, branches and tags.. but unstable branch missing!)
104