⊗gtPmBrMC 39 of 66 menu

Konflikt beim Zusammenführen von Branches in Git

Beim Zusammenführen zweier Branches kann es zu Konflikten kommen, wenn wir in jedem Branch dieselbe Datei geändert haben. Betrachten wir eine Situation, in der wir in beiden Branches master und test aus der vorherigen Lektion die gleiche Datei file.txt geändert und einen Commit erstellt haben. Anschließend haben wir den Merge-Befehl ausgeführt:

git merge test

Als Ergebnis sehen wir einen Fehler:

Auto-merging file.txt CONFLICT (content): Merge conflict in file.txt Automatic merge failed; fix conflicts and then commit the result.

Zusätzlich sehen wir im geänderten File Konfliktmarkierungen:

<<<<<<< HEAD hier stehen die Änderungen aus dem master-Branch ======= hier stehen die Änderungen aus dem test-Branch >>>>>>> test

Im oberen Teil der Nachricht sind die Änderungen angegeben, die im aktuell Hauptbranch gemacht wurden, im unteren Teil - die im zweiten Branch, den wir mit dem ersten zusammenführen wollen. Um den Konflikt zu lösen, müssen wir den Inhalt der Datei auf einen gemeinsamen Stand bringen, indem wir zuvor (manuell im Editor!) alle Konfliktbezeichnungen entfernen, die Git darin hinterlassen hat.

Nachdem wir den Konflikt gelöst haben (d.h. den korrekten Code in der Datei belassen haben), stagen wir unsere Datei und machen einen Commit im Branch master, in dem wir uns aktuell befinden:

git add file.txt git commit -m "Zusammenführung"

Erst danach können wir zum zweiten Branch test wechseln und alle gleichen Operationen durchführen wie im Branch master, einschließlich des Ersetzens des Inhalts der Datei file.txt durch denselben wie im ersten Branch:

git add file.txt git commit -m "Zusammenführung"

Jetzt können wir wieder zum Hauptbranch wechseln und den zweiten Branch hinein mergen:

git switch master git merge test

Erzeugen Sie absichtlich einen Konflikt beim Zusammenführen von Branches. Lösen Sie ihn anschließend.

Deutsch
БеларускаяEnglishEspañolFrançaisPortuguêsРусский
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen