Konfliktlösung
Wenn sowohl im Arbeitsbereich als auch im Git-Remoterepository Änderungen am selben Element vorgenommen werden, tritt ein Konflikt auf. Wenn ein Konflikt auftritt, lautet der Git-Status Konflikt, und der Befehl Commit ist deaktiviert.
Wenn Sie bei Konflikten Update auswählen, werden Sie in einer Meldung darüber informiert, dass Sie die Konflikte beheben müssen, bevor Sie ein Update ausführen können.
Es gibt drei Möglichkeiten, einen Konflikt zu beheben:
- Wählen Sie aus, welche Version über die Benutzeroberfläche beibehalten werden soll.
- Zurücksetzen des Arbeitsbereichs oder des Git-Repositorys auf einen früheren synchronisierten Zustand
- Beheben des Konflikts in Git
Beheben eines Konflikts in der Benutzeroberfläche
Wählen Sie Alle aktualisieren aus, um eine Liste aller konfliktbehafteten Elemente anzuzeigen. Sie können dann auswählen, welche Version für jedes Element beibehalten werden soll. Für jedes konfliktbehaftete Element können Sie die eingehenden Änderungen aus dem Git-Repository akzeptieren oder die aktuelle Version im Arbeitsbereich beibehalten.
Wählen Sie Eingehende Änderungen annehmen aus, um die Änderungen im Arbeitsbereich zu überschreiben. Die Änderungen im Arbeitsbereich gehen verloren, und der Git-Status wechselt zu Synchronisiert, wenn der Import erfolgreich ist.
Wählen Sie Aktuellen Inhalt beibehalten aus, um die aktuelle Version im Arbeitsbereich beizubehalten. Nach Abschluss des Updates wechselt der Git-Status zu Ausgecheckte Änderungen, da die Änderungen im Arbeitsbereich noch nicht in den Branch committet wurden.
Zurücksetzen auf einen vorherigen Zustand
Sie können entweder den gesamten Arbeitsbereich oder den Git-Branch auf den letzten synchronisierten Zustand zurücksetzen. Wenn Sie den Git-Branch auf einen vorherigen Commit zurücksetzen, können Sie noch die Änderungen sehen, die am nicht synchronisierten Branch vorgenommen wurden. Wenn Sie den Arbeitsbereich zurücksetzen, gehen alle Änderungen, die seit dem letzten Commit am Arbeitsbereich vorgenommen wurden, verloren.
Führen Sie eine der folgenden Aktionen aus, um zum zuvor synchronisierten Zustand zurückzukehren:
- Verwenden Sie den Befehl Rückgängig machen, um alle konfliktbehafteten Elemente im Arbeitsbereich auf ihren zuletzt synchronisierten Zustand zurückzusetzen.
- Verwenden Sie den Befehl
git revert
in Azure DevOps, um zum letzten synchronisierten Zustand in Git zurückzukehren.
Sie können Konflikte auch beheben, indem Sie den Arbeitsbereich trennen und erneut verbinden. Wenn Sie die Verbindung erneut herstellen, wählen Sie die Richtung aus, in die Sie synchronisieren möchten. Beachten Sie jedoch, dass durch die erneute Verbindungswiederherstellung alle Elemente im Arbeitsbereich oder Branch und nicht nur die konfliktbehafteten Elemente überschrieben werden. Der Arbeitsbereich oder Branch wird nicht in den letzten synchronisierten Zustand zurückversetzt. Stattdessen wird der gesamte Inhalt an einem Speicherort mit dem Inhalt des anderen Speicherorts überschrieben.
Beheben eines Konflikts in Git
Wenn Sie sich über die vorgenommenen Änderungen und die Auswahl der Version nicht sicher sind und nicht zu einem vorherigen Zustand zurückkehren möchten, können Sie versuchen, den Konflikt im Git-Repository zu beheben, indem Sie einen neuen Branch erstellen, den Konflikt dort beheben und ihn mit dem aktuellen Branch synchronisieren.
Hinweis
Nur ein Arbeitsbereichsadministrator kann den Arbeitsbereich erneut mit dem neuen Branch verbinden.
Checken Sie im Bereich Quellcodeverwaltung unter Verwendung der ID des zuletzt synchronisierten Branchs, die am unteren Bildschirmrand angezeigt wird, einen neuen Branch aus
In diesem Schritt wird ein neuer Branch aus dem konfliktbehafteten Branch erstellt, wobei der letzte synchronisierte Git-Status verwendet wird, bevor Änderungen vorgenommen wurden, die mit Ihren Änderungen in Konflikt stehen. Sie können Ihre Änderungen im Bereich Quellcodeverwaltung anzeigen, aber es gibt nichts, das vom Git-Branch aktualisiert werden muss. Der Check-Out-Branch behält den aktuellen Arbeitsbereichszustand bei, sodass ausgecheckte Änderungen beim Ändern des Branchs beibehalten werden.
Committen Sie Ihre Änderungen in den neuen Branch. Dieser neue Branch enthält jetzt die Änderungen, die Sie an den Elementen vorgenommen haben, die mit einer früheren Version des Git-Branchs verbunden waren, der keinen Konflikt mit Ihren Änderungen verursacht hat.
Lösen Sie in Git die Konflikte zwischen dem ursprünglichen Branch und dem neuen Branch.
Führen Sie in Git den neuen Branch mit dem ursprünglichen Branch zusammen.
Stellen Sie in Fabric den Arbeitsbereich wieder auf den ursprünglichen Branch um.