GitWorkflow: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Langenfeld (Diskussion | Beiträge)
Langenfeld (Diskussion | Beiträge)
Zeile 16: Zeile 16:


Jedes mal wenn Sie mit dem remote repository synchronisieren sollten Sie den Befehl <code>git pull --rebase</code> verwenden, um die zwischenzeitlich auf dem Server eingegangenen Commits zu sychronisieren. Wie im [[Git|Gitartikel]] erklärt entspricht dieser Befehl <code>git fetch; git rebase</code>, sodass eine einfach zu lesende und pflegende lineare History entsteht <ref>https://www.endoflineblog.com/oneflow-a-git-branching-model-and-workflow</ref> (beim rebasen, genau wie beim mergen können Konflikte entstehen, die Git nicht automatisch lösen kann und die durch den Benutzer [[Git#Konflikte lösen| gelöst]] werden müssen, bevor das Ergebnis gepusht werden kann).
Jedes mal wenn Sie mit dem remote repository synchronisieren sollten Sie den Befehl <code>git pull --rebase</code> verwenden, um die zwischenzeitlich auf dem Server eingegangenen Commits zu sychronisieren. Wie im [[Git|Gitartikel]] erklärt entspricht dieser Befehl <code>git fetch; git rebase</code>, sodass eine einfach zu lesende und pflegende lineare History entsteht <ref>https://www.endoflineblog.com/oneflow-a-git-branching-model-and-workflow</ref> (beim rebasen, genau wie beim mergen können Konflikte entstehen, die Git nicht automatisch lösen kann und die durch den Benutzer [[Git#Konflikte lösen| gelöst]] werden müssen, bevor das Ergebnis gepusht werden kann).
==== Beispiel ====
[[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 Ben sein repository geclont hatte (d.h. Benjamin hat ihren commit <code>d030e28</code> nicht in seinem lokalen Repository).
<source>
*      d030e28 (origin/dev) A Whitty comment (closes #41) - Tina Teststudent
|
| *    c91275a (HEAD -> dev) A Whitty comment (closes #22) - Benjamin Beispielstudent
|/
*      f48f012 Created initial Project - ...
</source>
Da Benjamin beim pushen gewarnt wird, dass seiner lokale kopie von <code>dev</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:
<source>
*      c91275a (HEAD -> dev) A Whitty comment (closes #22) - Benjamin Beispielstudent
|
*      d030e28 (origin/dev) A Whitty comment (closes #41) - Tina Teststudent
|
*      f48f012 Created initial Project - ...
</source>
Benjamin fürht nun einen Push aus um seine Änderungen mit dem Server zu synchronisieren.
<source>
*      c91275a (HEAD -> dev, origin/dev) A Whitty comment (closes #22) - Benjamin Beispielstudent
|
*      d030e28 A Whitty comment (closes #41) - Tina Teststudent
|
*      f48f012 Created initial Project - ...
</source> [[Kategorie:Code-Beispiele]]


=== Am Ende des Sprints ===
=== Am Ende des Sprints ===