forked from linuxmuster/sophomorix2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
git.help
115 lines (78 loc) · 2.84 KB
/
git.help
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
############################################################
Schreibender Zugriff für sophomorix2 einrichten
############################################################
1. Entwickler git ssh public key an [email protected]
ssh-keygen -t dsa
2. gitolite-admin auschecken
- keys dazukopieren unter benannt nach Anmeldenamen
- gitolite.conf: Eintragen als RW Zugriff
3. gitolite-admin wieder einchecken
4. A) Entwickler kann clonen mit:
ssh-add priv.key (oder ssh-agent /bin/bash; ssh-add priv.key )
git clone [email protected]:sophomorix2
cd sophomorix2
git branch
--> das checked nur master branch aus
B) Anderen branch (z.B. oneiric-package) mittracken und wechseln:
git checkout --track -b oneriric-package origin/oneriric-package
5. Sonstiges:
Tags anzeigen:
git tag
Branches anzeigen:
git branch (lokale und remote, getrackte)
git branch -a (alle, auch remote)
Branch wechseln:
git checkout oneriric-package
git checkout master
############################################################
Bug in mehreren Branches fixen
############################################################
Annahme: 2 branches vorhanden
* master
precise
1. aktuelle branches holen:
git pull
git branch -v
-> lokale branches werde gezeigt:
master
precise
(falls precise nicht gezeigt wird, siehe oben bei 'remote tracking')
2. Branch auschecken, in dem der Bugfix entwickelt werden soll:
git checkout master
(prüfen mit git branch -v)
3. Einen neuen lokalen branch erstellen, in dem dieser Bug gefixt wird.
Dieser basiert(=ist im Moment identisch) auf den vorher ausgecheckten
branch (Im Beispiel 'master')
git branch fix-bug-100
4. Wechseln in den Bugfix-Branch:
git checkout fix-bug-100
(prüfen mit git branch -v)
5. Nun den Bug fixen. Die Änderungen kommen dabei in den
branch fix-bug-100
6. Nachdem der Bug gefixed ist
git status
git add ... (list the files that are changed)
git commit -m "bug 100 fixed in master"
git show --summary
(zeigt den hash dieses commits an, z.B.
commit ff2209369e182727405384579233629602518bef
)
7. fix-bug-100 nach 'master' mergen:
git checkout master
#####git merge fix-bug-100
git cherry-pick ff2209369e182727405384579233629602518bef
8. fix-bug-100 nach precise mergen:
git checkout precise
####git merge fix-bug-100
git cherry-pick ff2209369e182727405384579233629602518bef
-> hier muss man mit Konflikten rechnen
9. Änderungen remote pushen:
git checkout master
git commit -m "bug 100 fixed"
git status
git push
(push sollte master UND precice pushen,
Wieso? - wegen remote tracking?
- weil gemerged in beide branches)
10. Der gemergte, lokale branch fix-bug-100 kann lokal gelöscht werden:
git branch -d fix-bug-100