Informationen zu Mergekonflikten
Zu Mergekonflikten kommt es, wenn Sie Branches mergen, die konkurrierende Commits haben, und Git Ihre Hilfe benötigt, um zu entscheiden, welche Änderungen in den endgültigen Merge aufgenommen werden sollen.
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 Mergen für Computer leicht verständlich macht. Manchmal gibt es jedoch konkurrierende Änderungen, die Git ohne Ihre 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 Mergekonflikte lösen, bevor Sie einen Pull Request auf GitHub Enterprise mergen können. Wenn Sie in Ihrem Pull Request einen Mergekonflikt zwischen dem Vergleichsbranch und dem Basisbranch haben, können Sie eine Liste der Dateien mit in Konflikt stehenden Änderungen oberhalb der Schaltfläche Merge pull request (Pull Request mergen) anzeigen. Die Schaltfläche Merge pull request (Pull Request mergen) wird erst aktiviert, wenn Sie alle Konflikte zwischen dem Vergleichsbranch und dem Basisbranch gelöst haben.
Mergekonflikte beheben
Um einen Mergekonflikt zu beheben, müssen Sie die Konfliktdatei manuell bearbeiten, um die Änderungen auszuwählen, die Sie beim endgültigen Merge beibehalten möchten. Es gibt verschiedene Möglichkeiten, einen Mergekonflikt zu beheben:
- Wenn Ihr Mergekonflikt 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 mit dem Konflikteditor von GitHub Enterprise beheben. Weitere Informationen finden Sie unter „Einen Mergekonflikt auf GitHub beheben“.
- Bei allen anderen Arten von Mergekonflikten müssen Sie den Mergekonflikt in einem lokalen Klon des Repositorys beheben und die Änderung an Ihren Branch auf GitHub Enterprise pushen. Zum Pushen der Änderung können Sie die Befehlszeile oder ein Tool wie GitHub Desktop verwenden. Weitere Informationen finden Sie unter „Einen Mergekonflikt in der Befehlszeile beheben“.
Wenn Sie einen Mergekonflikt in der Befehlszeile haben, können Sie Ihre lokalen Änderungen erst an GitHub Enterprise pushen, wenn Sie den Mergekonflikt lokal auf Ihrem Computer behoben haben. Wenn Sie versuchen, Branches mit einem Mergekonflikt in der Befehlszeile zu mergen, wird Ihnen eine Fehlermeldung angezeigt. Weitere Informationen finden Sie unter „Einen Mergekonflikt in der 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