15 Umgang mit Merge-Konflikten

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.

15.1 Schritte zur Konfliktlösung

  1. Git identifiziert den Konflikt: Bei einem Merge-Versuch wird ein Konflikt angezeigt, wenn automatische Zusammenführung nicht möglich ist.

  2. 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.

  3. Konflikte auflösen und Änderungen committen: Nach der Bearbeitung entfernt der Entwickler die Konfliktmarkierungen und commitet die aufgelösten Dateien.

  4. Merge abschließen: Sobald alle Konflikte behoben und die Änderungen committed sind, kann der Merge-Vorgang abgeschlossen werden.

15.2 Best Practices

15.3 Beispiel eines Konflikt-Diagramms

Vor dem Konflikt:

Während des Konflikts: