Merge-Konflikte treten auf, wenn Git nicht automatisch Änderungen von zwei Branches zusammenführen kann. Dies geschieht, wenn mehrere Entwickler dieselben Zeilen in einer Datei ändern oder wenn eine Datei in einem Branch geändert und in einem anderen gelöscht wird. Die Lösung von Konflikten erfordert manuelle Eingriffe, um festzulegen, welche Änderungen übernommen werden sollen.
Git identifiziert den Konflikt: Bei einem Merge-Versuch wird ein Konflikt angezeigt, wenn automatische Zusammenführung nicht möglich ist.
Konfliktbereiche manuell bearbeiten: Die betroffenen Dateien enthalten Markierungen, die die Konfliktstellen kennzeichnen:
<<<<<<< HEAD
Ältere Änderung
=======
Neue Änderung
>>>>>>> feature-branch
Die Markierungen HEAD
und der Branch-Name zeigen die
Konfliktlinien an. Entwickler müssen diese Bereiche manuell bearbeiten,
indem sie entscheiden, welche Änderungen übernommen oder kombiniert
werden sollen.
Konflikte auflösen und Änderungen committen: Nach der Bearbeitung entfernt der Entwickler die Konfliktmarkierungen und commitet die aufgelösten Dateien.
Merge abschließen: Sobald alle Konflikte behoben und die Änderungen committed sind, kann der Merge-Vorgang abgeschlossen werden.
Vor dem Konflikt:
Während des Konflikts: