Wie kann ich einen Merge-Konflikt in GitHub Desktop lösen?
- Verstehen, was ein Merge-Konflikt ist
- Vorbereitung: Änderungen sichern und Status prüfen
- Konfliktdateien öffnen und Unterschiede ansehen
- Entscheiden und Konflikte auflösen
- Dateien als gelöst markieren und Commit durchführen
- Testen und Pushen
- Häufige Fehler und Tipps
Verstehen, was ein Merge-Konflikt ist
Ein Merge-Konflikt tritt auf, wenn zwei Änderungen an denselben Zeilen oder Bereichen einer Datei nicht automatisch zusammengeführt werden können. Git markiert diese Konflikte und stoppt den Merge-Prozess, damit du entscheiden kannst, welche Änderungen beibehalten, kombiniert oder verworfen werden sollen. In GitHub Desktop siehst du Konflikte als Dateien mit einem Warnsymbol und eine Meldung, dass der Merge nicht automatisch abgeschlossen werden konnte.
Vorbereitung: Änderungen sichern und Status prüfen
Bevor du mit der Konfliktlösung beginnst, stelle sicher, dass alle lokalen Änderungen committet oder gestasht sind, damit nichts verloren geht. Öffne GitHub Desktop und wähle das betroffene Repository. Im Bereich "Changes" oder der Merge-Benachrichtigung findest du eine Liste der konfliktbehafteten Dateien. Es ist hilfreich, die betroffenen Branches zu kennen: welcher Branch wurde in welchen gemerged.
Konfliktdateien öffnen und Unterschiede ansehen
Klicke in GitHub Desktop auf eine konfliktbehaftete Datei. Die App zeigt normalerweise eine einfache Ansicht mit den Konfliktbereichen an oder bietet einen Knopf "Open in External Editor" / "Öffnen im externen Editor". Öffne die Datei in deinem bevorzugten Text- oder Merge-Editor (z. B. VS Code), um die Konfliktmarker (<<<<<<<, =======, >>>>>>>) zu sehen. Analysiere die Abschnitte: der obere Bereich zeigt deine lokalen Änderungen, der untere die Änderungen vom Ziel-Branch.
Entscheiden und Konflikte auflösen
Treffe eine bewusste Entscheidung, wie der endgültige Code aussehen soll: du kannst eine Seite wählen, beide Änderungen zusammenführen oder eine komplett neue Lösung schreiben. Entferne alle Konfliktmarker und formatiere den Code korrekt. Achte darauf, dass du keine relevanten Änderungen versehentlich entfernst und dass das Ergebnis kompiliert und funktioniert.
Dateien als gelöst markieren und Commit durchführen
Nachdem du alle Konflikte in den Dateien behoben und gespeichert hast, kehre zu GitHub Desktop zurück. Die Dateien sollten jetzt als geändert angezeigt werden, ohne Konfliktmarkierungen. Überprüfe die Änderungen noch einmal lokal. Gib eine aussagekräftige Commit-Nachricht wie "Resolve merge conflicts between branch A and branch B" und klicke auf "Commit merge" oder "Commit to ...". Dadurch wird der Merge-Vorgang abgeschlossen.
Testen und Pushen
Führe lokale Tests und ggf. Builds aus, um sicherzustellen, dass nichts gebrochen ist. Wenn alles in Ordnung ist, klicke in GitHub Desktop auf "Push origin", um den gemergten Branch und den Commit mit den gelösten Konflikten zum entfernten Repository hochzuladen. Wenn der Merge Teil einer Pull Request war, wird die PR nun aktualisiert und zeigt keine Konflikte mehr an.
Häufige Fehler und Tipps
Verwende bei komplexen Konflikten einen visuellen Merge-Tool (z. B. die in VS Code integrierte Merge-Ansicht) für bessere Übersicht. Wenn du unsicher bist, kommuniziere mit deinem Team, um die beabsichtigte Änderung zu klären. Bewahre Kopien wichtiger Dateien auf, bevor du größere manuelle Anpassungen vornimmst. Wenn etwas schiefgeht, kannst du mit git reflog oder in GitHub Desktop über "History" zu einem früheren Zustand zurückkehren.
