Oft kann Git Unterschiede zwischen Branches beheben und diese automatisch zusammenführen. In der Regel liegen die Änderungen in verschiedenen Zeilen oder sogar in verschiedenen Dateien vor, was das Zusammenführen für Computer leicht verständlich macht. Manchmal gibt es jedoch konkurrierende Änderungen, die Git ohne deine Hilfe nicht bewältigen kann. Häufig treten Mergekonflikte auf, wenn Personen unterschiedliche Änderungen an derselben Zeile derselben Datei vornehmen, oder wenn eine Person eine Datei bearbeitet und eine andere Person dieselbe Datei löscht.
Sie müssen alle Zusammenführungskonflikte lösen, bevor Sie einen Pull-Request auf GitHub zusammenführen können. Wenn in deinem Pull Request ein Mergekonflikt zwischen dem Vergleichsbranch und dem Basisbranch vorliegt, kannst du eine Liste der Dateien mit in Konflikt stehenden Änderungen oberhalb der Schaltfläche Pull Request mergen anzeigen. Die Schaltfläche Pull Request mergen wird erst aktiviert, wenn du alle Konflikte zwischen dem Vergleichsbranch und dem Basisbranch gelöst hast.
Auflösen von Merge-Konflikten
Um einen Mergekonflikt zu beheben, musst du die Konfliktdatei manuell bearbeiten, um die Änderungen auszuwählen, die du beim endgültigen Merge beibehalten möchtest. Es gibt verschiedene Möglichkeiten, einen Mergekonflikt zu beheben:
-
Wenn Ihr Zusammenführungskonflikt durch konkurrierende Zeilenänderungen verursacht wird, z. B. wenn Personen unterschiedliche Änderungen an derselben Zeile derselben Datei auf verschiedenen Branches in Ihrem Git-Repository vornehmen, können Sie ihn GitHub mit dem Konflikt-Editor beheben. Weitere Informationen finden Sie unter Auflösen eines Zusammenführungskonflikts auf GitHub.
-
Für alle anderen Arten von Zusammenführungskonflikten müssen Sie den Zusammenführungskonflikt in einem lokalen Klon des Repositories lösen und die Änderung auf Ihren Branch GitHub pushen. Sie können die Befehlszeile oder ein Tool verwenden, um die Änderung zu GitHub Desktop pushen. Weitere Informationen finden Sie unter Einen Mergekonflikt über die Befehlszeile beheben.
-
Bei einem beliebigen Zusammenführungskonflikt können Sie, wenn Sie Zugriff auf Copilot-Cloud-Agent haben und es für das Repository aktiviert ist, im Zusammenführungsdialog auf Korrigieren mit Copilot klicken, damit Copilot die Konflikte für Sie löst. Copilot analysiert die widersprüchlichen Änderungen, löst die Konflikte, und überprüft, ob der Build, Tests und Linter noch bestehen. Weitere Informationen finden Sie unter Überprüfen Sie die Ausgabe von Copilot.
Wenn Sie einen Zusammenführungskonflikt in der Befehlszeile haben, können Sie Ihre lokalen Änderungen nicht auf GitHub hochladen, bis Sie den Zusammenführungskonflikt lokal auf Ihrem Computer gelöst haben. Wenn du versuchst, Branches mit einem Mergekonflikt in der Befehlszeile zusammenzuführen, wird dir eine Fehlermeldung angezeigt. Weitere Informationen finden Sie unter Einen Mergekonflikt über die Befehlszeile beheben.
$ git merge BRANCH-NAME
> Auto-merging styleguide.md
> CONFLICT (content): Merge conflict in styleguide.md
> Automatic merge failed; fix conflicts and then commit the result
Weiterführende Lektüre
-
[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges) -
[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) -
[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line) -
[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-on-github)