Freigeben über


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.

Screenshot: Bericht mit dem Git-Status „Konflikt“.

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.

Screenshot einer Fehlermeldung auf der Registerkarte „Quellcodeverwaltung“, die über Konflikte informiert.

Es gibt drei Möglichkeiten, einen Konflikt zu beheben:

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.

Screenshot der Benutzeroberfläche zum Auswählen der Version eines konfliktbehafteten Elements, die beibehalten werden soll.

  • 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.

  1. Checken Sie im Bereich Quellcodeverwaltung unter Verwendung der ID des zuletzt synchronisierten Branchs, die am unteren Bildschirmrand angezeigt wird, einen neuen Branch aus

    Screenshot: Auschecken eines neuen Branchs im Bereich „Quellcodeverwaltung“ durch Auswahl des Pfeils nach unten.

    Screenshot: Informationen zur Branch-ID am unteren Bildschirmrand

    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.

  2. 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.

  3. Lösen Sie in Git die Konflikte zwischen dem ursprünglichen Branch und dem neuen Branch.

  4. Führen Sie in Git den neuen Branch mit dem ursprünglichen Branch zusammen.

  5. Stellen Sie in Fabric den Arbeitsbereich wieder auf den ursprünglichen Branch um.