GitWorkflow: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 9: | Zeile 9: | ||
* <code>master</code>: die Arbeit jedes Entwicklers wird auf den Branch ''master'' gerebased, sodass eine ordentliche lineare Abfolge von Änderungen entsteht. | * <code>master</code>: die Arbeit jedes Entwicklers wird auf den Branch ''master'' gerebased, sodass eine ordentliche lineare Abfolge von Änderungen entsteht. | ||
* <code>release</code>: jede | * <code>release</code>: jede abgeschlossene Weiterentwicklung des Projekts (z.B.: das Sprintinkrement oder die Hausaufgabe) wird auf den ''release'' Branch gemerged. Der <code>release</code>-branch repräsentiert zu jeder Zeit einen auslieferbaren Stand des Projektes. | ||
| Zeile 22: | Zeile 22: | ||
[[Hausaufgabe#Aufgabe 4: Texte lesen| Aufagbe 4]] der Hausaufgabe erfordert, dass alle Studenten einen Commit pushen. Im unten gezeigten Beispiel hat Studentin Tina ihre Änderung gepusht, nachdem Benjamin sein Repository geklont hatte (d.h. Benjamin hat ihren Commit <code>d030e28</code> nicht in seinem lokalen Repository). | [[Hausaufgabe#Aufgabe 4: Texte lesen| Aufagbe 4]] der Hausaufgabe erfordert, dass alle Studenten einen Commit pushen. Im unten gezeigten Beispiel hat Studentin Tina ihre Änderung gepusht, nachdem Benjamin sein Repository geklont hatte (d.h. Benjamin hat ihren Commit <code>d030e28</code> nicht in seinem lokalen Repository). | ||
< | <pre> | ||
* d030e28 (origin/master) A Whitty comment (closes #41) - Tina Teststudent | * d030e28 (origin/master) A Whitty comment (closes #41) - Tina Teststudent | ||
| * c91275a (HEAD -> master) A Whitty comment (closes #22) - Benjamin Beispielstudent | | * c91275a (HEAD -> master) A Whitty comment (closes #22) - Benjamin Beispielstudent | ||
|/ | |/ | ||
* f48f012 Created initial Project - ... | * f48f012 Created initial Project - ... | ||
</ | </pre> | ||
Da Benjamin beim Pushen gewarnt wird, dass seiner lokalen Kopie von <code>master</code> Commits fehlen, die im remote repository vorhanden sind. Benjamin führt <code>git pull --rebase</code> aus. Die lokale Historie sieht nun wie folgt aus, Commit <code>c91275a</code> wurde hinter <code>d030e28</code> gehängt: | Da Benjamin beim Pushen gewarnt wird, dass seiner lokalen Kopie von <code>master</code> Commits fehlen, die im remote repository vorhanden sind. Benjamin führt <code>git pull --rebase</code> aus. Die lokale Historie sieht nun wie folgt aus, Commit <code>c91275a</code> wurde hinter <code>d030e28</code> gehängt: | ||
< | <pre> | ||
* 080fe12 (HEAD -> master) A Whitty comment (closes #22) - Benjamin Beispielstudent | * 080fe12 (HEAD -> master) A Whitty comment (closes #22) - Benjamin Beispielstudent | ||
* d030e28 (origin/master) A Whitty comment (closes #41) - Tina Teststudent | * d030e28 (origin/master) A Whitty comment (closes #41) - Tina Teststudent | ||
* f48f012 Created initial Project - ... | * f48f012 Created initial Project - ... | ||
</ | </pre> | ||
Benjamin führt nun einen Push aus um seine Änderungen mit dem Server zu synchronisieren. | Benjamin führt nun einen Push aus um seine Änderungen mit dem Server zu synchronisieren. | ||
< | <pre> | ||
* 080fe12 (HEAD -> master, origin/master) A Whitty comment (closes #22) - Benjamin Beispielstudent | * 080fe12 (HEAD -> master, origin/master) A Whitty comment (closes #22) - Benjamin Beispielstudent | ||
* d030e28 A Whitty comment (closes #41) - Tina Teststudent | * d030e28 A Whitty comment (closes #41) - Tina Teststudent | ||
* f48f012 Created initial Project - ... | * f48f012 Created initial Project - ... | ||
</ | </pre> [[Kategorie:Code-Beispiele]] | ||
=== Sprint abschließen === | === Sprint abschließen === | ||
| Zeile 49: | Zeile 49: | ||
Kurz bevor ein Sprint endet, sollte die Historie also wie folgt aussehen (<code>git log --decorate --graph --oneline</code>): der ''release'' branch wurde seit Ende des lezten Sprints nicht verändert, der ''master'' branch enthält alle Änderungen die im Sprint gemacht wurden. | Kurz bevor ein Sprint endet, sollte die Historie also wie folgt aussehen (<code>git log --decorate --graph --oneline</code>): der ''release'' branch wurde seit Ende des lezten Sprints nicht verändert, der ''master'' branch enthält alle Änderungen die im Sprint gemacht wurden. | ||
< | <pre> | ||
| * .... (HEAD -> master) Fixed bug. Everything working. (closes #22) - student03 | | * .... (HEAD -> master) Fixed bug. Everything working. (closes #22) - student03 | ||
| * .... Game object able to move (hardcoded) see #12 - student01 | | * .... Game object able to move (hardcoded) see #12 - student01 | ||
| Zeile 59: | Zeile 59: | ||
|/ | |/ | ||
* .... (release) Merged Sprint into Master. | * .... (release) Merged Sprint into Master. | ||
</ | </pre> | ||
Nachdem alle Aufgaben für den Sprint beendet sind, wird der Inkrement (alles was sich auf ''master'' befindet) in den ''release'' Branch übertragen. Dazu wird der ''master'' Branch in den ''release'' Branch gemerged (<code>git checkout release && git merge master</code>). Wahlweise kann der Merge auch über einen [[Gitea#Pullrequest| Pull Request in Gitea]] erledigt werden. Der Ergebnis sollte in beiden Fällen wie folgt aussehen: | Nachdem alle Aufgaben für den Sprint beendet sind, wird der Inkrement (alles was sich auf ''master'' befindet) in den ''release'' Branch übertragen. Dazu wird der ''master'' Branch in den ''release'' Branch gemerged (<code>git checkout release && git merge master</code>). Wahlweise kann der Merge auch über einen [[Gitea#Pullrequest| Pull Request in Gitea]] erledigt werden. Der Ergebnis sollte in beiden Fällen wie folgt aussehen: | ||
< | <pre> | ||
* .... (HEAD -> master, release) Merged Sprint2 into Release. | * .... (HEAD -> master, release) Merged Sprint2 into Release. | ||
|\ | |\ | ||
| Zeile 75: | Zeile 75: | ||
|/ | |/ | ||
* .... Merged Sprint into Release. | * .... Merged Sprint into Release. | ||
</ | </pre> | ||
Im folgenden Sprint wird weiter am ''master'' Branch gearbeitet [[Kategorie:Code-Beispiele]]. | Im folgenden Sprint wird weiter am ''master'' Branch gearbeitet [[Kategorie:Code-Beispiele]]. | ||
< | <pre> | ||
| * .... First 'Tank'-unit (closes #26) - student03 | | * .... First 'Tank'-unit (closes #26) - student03 | ||
* | .... (HEAD -> master, release) Merged Sprint2 into Release. | * | .... (HEAD -> master, release) Merged Sprint2 into Release. | ||
| Zeile 85: | Zeile 85: | ||
| * .... Fixed bug. Everything working. (closes #22) - student03 | | * .... Fixed bug. Everything working. (closes #22) - student03 | ||
... | ... | ||
</ | </pre> | ||
== Links == | == Links == | ||
| Zeile 95: | Zeile 95: | ||
== References == | == References == | ||
<references /> | <references /> | ||
[[Kategorie:Organisation]] | |||
