Wie kann ich in Sourcetree einen Merge-Konflikt auflösen?
- Erkennen eines Merge-Konflikts
- Dateien mit Konflikten markieren sich im Interface
- Konflikt lösen mit einem Merge-Tool
- Manuelle Bearbeitung direkt in Sourcetree
- Abschließen des Merge-Vorgangs
- Zusätzliche Hinweise
Erkennen eines Merge-Konflikts
Wenn du in Sourcetree einen Merge-Vorgang startest und es zu Konflikten kommt, wird dies sofort in der Benutzeroberfläche angezeigt. Schuld daran sind Änderungen, die sich in verschiedenen Branches widersprechen und nicht automatisch zusammengeführt werden können. Im "Arbeitskopie"-Bereich oder im "Dateien"-Tab findest du die betreffenden Dateien mit einem roten Ausrufezeichen oder einer anderen Markierung, die auf den Konflikt hinweist.
Dateien mit Konflikten markieren sich im Interface
In Sourcetree werden die Konflikt-Dateien klar hervorgehoben, damit du genau weißt, welche Dateien manuell bearbeitet werden müssen. Beim Anklicken einer solchen Datei hast du oft die Möglichkeit, ein externes Tool zum Zusammenführen aufzurufen, falls du so eines eingerichtet hast. Alternativ kannst du auch direkt mit dem internen Editor arbeiten oder die Dateien manuell öffnen.
Konflikt lösen mit einem Merge-Tool
Ein äußerst hilfreiches Werkzeug ist ein sogenanntes Merge-Tool, das die Unterschiede anzeigt und es dir ermöglicht, Änderungen beider Seiten zu prüfen und auszuwählen, welche übernommen werden sollen. In Sourcetree kannst du eines der unterstützten Merge-Tools wie kdiff3, Beyond Compare oder Meld verwenden. Nach dem Aufruf des Merge-Tools zeigt dir die Oberfläche die drei Bereiche: Die Änderungen aus dem aktuellen Branch, die Änderungen aus dem anderen Branch sowie das endgültige Ergebnis.
Du markierst die gewünschten Codeabschnitte, passt sie gegebenenfalls an und speicherst das Ergebnis. Sobald alle Konflikte in der Datei beseitigt sind, ist das File bereinigt und du kannst diesen Schritt als erledigt markieren.
Manuelle Bearbeitung direkt in Sourcetree
Falls du kein externes Merge-Tool verwenden möchtest, kannst du auch die Dateien im Editor deiner Wahl öffnen. Die Konflikte sind im Quellcode durch spezielle Markierungen wie <<<<<<<, ======= und >>>>>>> gekennzeichnet. Der Abschnitt zwischen den ersten und zweiten Markierungen zeigt die aktuelle Branch-Version und der Abschnitt zwischen der zweiten und dritten Markierung die eingebrachte Version. Hier kannst du gezielt Code aussortieren, anpassen oder zusammenführen. Nachdem die Konfliktstellen bearbeitet sind, entfernst du diese Markierungen.
Abschließen des Merge-Vorgangs
Nachdem du alle Konflikte beseitigt hast, musst du die Änderungen als "zum Commit vorgemerkt" markieren. In Sourcetree tust du dies, indem du die korrigierten Dateien auswählst und sie zum nächsten Commit hinzufügst. Anschließend erstellst du einen Commit mit einer passenden Nachricht, der dokumentiert, dass die Konflikte aufgelöst wurden. Danach ist der Merge abgeschlossen und der Branch enthält die zusammengeführten und bereinigten Änderungen.
Zusätzliche Hinweise
Es ist wichtig, vor dem Beginn von Merges ein Backup oder zumindest einen klaren Zustand im Repository zu haben, falls etwas schiefgeht. Außerdem lohnt es sich, ein externes Merge-Tool zu konfigurieren, um den Prozess zu erleichtern. In den Einstellungen von Sourcetree kannst du unter Optionen / Diff dein bevorzugtes Tool auswählen. Mit etwas Übung gelingt das Auflösen von Merge-Konflikten so flüssig und sicher.
