Freigeben über


Grundlegendes zur Zuordnung von Befehlen der Team Foundation-Versionskontrolle (TFVC) zu Git-Workflows

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Planen Sie die Einführung von Git, sind Sie mit den TFVC-Aktionen vertraut und fragen Sie sich, wie diese in Git zugeordnet werden können? Beides sind leistungsstarke und ausgereifte Quellcodeverwaltungssysteme. Die Zuordnung allgemeiner Aktionen, an die Sie sich im einen System gewöhnt haben, kann jedoch eine verwirrende Erfahrung sein.

Dieser Artikel befasst sich nicht ausführlich mit den Git-Befehlen, da diese in der Produktdokumentation gut dokumentiert sind, sondern zeigt Beispiele, die Ihnen helfen, die richtigen Entscheidungen zu treffen, während Sie einen typischen Workflow zum Erstellen –> Klonen –> Branchen –> Ändern –> Committen –> Pushen durchlaufen.

Beginnen Sie mit dem Erstellen eines neuen Repositorys.

Jedes Projekt kann TFVC- und Git-Repositorys im selben Projekt hosten und dabei ein TFVC- und mindestens ein Git-Repository erstellen.

Erstellen eines neuen Git-Repositorys in Azure Repos

Nachdem das Repository erstellt wurde, erhalten Sie Schritt-für-Schritt-Anleitungen, damit Sie schnell einsteigen können.

Erste Schritte mit einem neuen Git-Repository in Azure Repos

Klicken Sie am Ende der Anleitungsseite auf Create a ReadMe file (Infodatei erstellen), um dem Repository Kontext zu geben und einen Verlauf zu erstellen.

Erstellen einer Infodatei zum Initialisieren eines neuen Git-Repositorys in Azure Repos

Erstellen eines Arbeitsbereichs und Abrufen des neuesten Codes

Wenn Sie zum ersten Mal eine Verbindung mit einem TFVC-Repository herstellen, erstellen Sie in der Regel einen Arbeitsbereich und rufen den neuesten Code. Wie führen Sie also erste Schritte in Git aus?

Ähnlich wie bei einem Arbeitsbereich in TFVC verwenden Sie clone, um das Git-Repository in einen Ordner auf Ihrem Computer zu klonen. Beim Klonen werden alle Inhalte und der Verlauf des Repositorys auf Ihren lokalen Computer heruntergeladen. Sobald Sie über das geklonte Repository verfügen, werden fast alle Vorgänge lokal ausgeführt. Sie können offline mit einer vollständigen Sicherung des zentralen Repositorys arbeiten.

git clone https://dev.azure.com/demo-fabrikam/Fabrikam/_git/Mapping-TFVC-actions-to-Git

Sie müssen nur ein Mal pro Repository klonen, aber wie bei TFVC-Arbeitsbereichen können Sie mehrere Klone verwenden, um laufende Aufgaben zu isolieren. Branchen ist jedoch in der Regel eine bessere Möglichkeit, Änderungen zu isolieren.

Erstellen einer Verzweigung

Mit Git arbeiten Sie immer in einem Branch und standardmäßig im main-Branch. Es wird empfohlen, mehrere lokale Branches zu erstellen. Es handelt sich um einen Prozess, der nur Sekunden in Anspruch nimmt und es Ihnen ermöglicht, einen nahtlosen Kontextwechsel zwischen Branches durchzuführen und isoliert zu arbeiten. Im Gegensatz zu TFVC-Branches, die auf Pfade ausgerichtet sind, sind Git-Branches für Repositorys gültig. Sie sind einfach, können nur lokal sein oder für andere Benutzer freigegeben werden, wenn Sie bereit sind, Ihre Änderungen zu teilen.

Erwägen Sie Branchen, wenn Sie isoliert arbeiten müssen, Ihre Arbeit anhalten müssen, sich auf neue Features konzentrieren müssen oder wenn Sie planen, einen Git-Pull Request durchzuführen.

Wiederholen Sie dies als TFVC-Benutzer einige Male:

  • Branchen wird empfohlen!
  • Git-Branching ist kostengünstig, schnell und leistungsstark!
  • Git empfiehlt Ihnen, lokale Branches zu verwenden.
  • Veröffentlichen Sie nach Bedarf lokale Branches in Ihrem zentralisierten Repository.
  • Überprüfen Sie immer den Branchkontext, bevor Sie Änderungen vornehmen.
  • Benennen Sie den Branch mithilfe einer allgemeinen Konvention wie users/alias/branchname, z. B.: users/doris/newfeature.

Erstellen Sie einen lokalen Themenbranch namens francis/demo-feature, und navigieren Sie zu diesem. Es empfiehlt sich, zunächst git status auszuführen, um zu überprüfen, ob Sie sich im richtigen Branch befinden, mit dem Sie beginnen möchten.

git checkout -b francis/demo-feature

Erstellen eines neuen Git-Branch über die Windows-Befehlszeile

Vornehmen einer Änderung durch Hinzufügen von Dateien

Ähnlich wie bei TFVC werden neue Dateien im Arbeitsordner nicht automatisch zu Teilen des Repositorys. Sie stellen Ihre neuen Dateien mit dem Befehl git add bereit, der mit dem Ausführen eines add Items to Folder-Vorgangs in TFVC synonym ist.

git add <file>

oder

git add --all

Mit dem vorab erstellten Beispiel verfügen Sie über 13 neue Dateien, die im lokalen Repository enthalten sind und gestaget wurden.

Anzeigen ausstehender Änderungen

Fragen Sie sich, welche Änderungen in Ihrer Arbeitsumgebung jetzt vorhanden sind? Wie zuvor zeigt der Git-Befehl status oder die Changes-Ansicht in der Visual Studio-IDE Änderungen in Ihrer Arbeitsstruktur an.

git status

Verwenden von Git Status zum Anzeigen von gestageten Änderungen

Einchecken von Änderungen und lokales Committen

In TFVC teilen Sie Ihre Änderungen, indem Sie sie einchecken. Dadurch werden Ihre ausstehenden Änderungen an den Server gesendet. Der Git-Prozess ist etwas anders. Zunächst committen Sie in das lokale Repository und erstellen so ein Commitobjekt (z. B. ein Changeset), dann pushen Sie diese Änderungen auf den Server.

Sie committen die Änderungen in Ihr lokales Repository mit git commit, ähnlich wie Checkin Pending Changes in TFVC. Ein wichtiger Unterschied besteht darin, dass git commit Ihre Änderungen in das lokale Repository anstelle des Remoterepositorys committet.

git commit

Einchecken von Änderungen mit dem Server/Remoterepository

Zunächst müssen Sie Ihren lokalen francis/demo-Featurebranch auf dem Remoteserver veröffentlichen, der alle committeten Änderungen enthält.

git push --set-upstream origin francis/demo-feature

Um weitere Updates in Ihrem lokalen Repository mit dem Remoterepository zu synchronisieren, müssen Sie Ihre Änderungen mithilfe von git push pushen. Es wird empfohlen, den git-Befehl oder die Visual Studio-IDE zu verwenden:

  • fetch, um Inhalte herunterzuladen und eine Vorschau eingehender Änderungen von anderen Benutzern anzuzeigen.
  • pull, um Änderungen von anderen Benutzern herunterzuladen und dann zu mergen.
  • push, um Ihre lokalen Änderungen zu teilen.

Anzeigen des Verlaufs

Um den soeben erstellten Commit anzuzeigen, können Sie den lokalen Verlauf überprüfen.

Verwenden Sie Folgendes für einen kompakten Verlauf:

git log --oneline

Verwenden Sie Folgendes für eine detaillierte Ansicht:

git log

Verwenden des Git-Protokolls zum Überprüfen des Branchverlaufs

Wie oben gezeigt, listet git log den Autor, die E-Mail-Adresse, das Datum des Schreibens und die SHA-1-Prüfsumme des Commits auf. Als TFVC-Benutzer möchten Sie ggf. die Option --stat verwenden, um weitere Informationen wie Dateinamen und Änderungsstatistiken einzubinden.

Sie können den Verlauf des zentralisierten Repositorys auch über das Azure DevOps Services-Webportal anzeigen.

Wählen Sie im Azure DevOps Services-Webportal CODE > Verlauf oder CODE > Explorer > Verlauf aus.

Anzeigen des Branchverlaufs in Azure Repos

An diesem Punkt haben Sie den Workflow zum Erstellen –> Klonen –> Branchen –> Ändern –> Committen –> Pushen basierend auf allgemeinen TFVC-Aktionen erfolgreich untersucht.

Sie haben auch die Möglichkeit, einen Pull Request auszugeben, um Ihre Änderungen an diesem Punkt auf dem Server bzw. im Remoterepository zu veröffentlichen und zu stagen.

Andere Aktionen

Wechseln von Branches

Wenn Sie mit Git arbeiten, ändern Sie keine Branches, indem Sie zu separaten Ordnern und Speicherorten auf Ihrem Computer navigieren. Sie ändern den Kontext, indem Sie einen checkout-Vorgang ausführen, damit das gesamte Arbeitsverzeichnis mit dem ausgewählten Branch oder Commit übereinstimmt. Schnell und einfach!

Befehlszeile

git checkout <branch>

Wenn Sie vergessen haben, welche Branches in Ihrem lokalen Repository enthalten sind, verwenden Sie git branch, um die Standard- und bekannten Branches aufzulisten.

Merken Sie sich, an welchem Branch Sie arbeiten! Wenn Sie mit mehreren Branches in Git arbeiten, wechseln Sie im selben Arbeitsverzeichnis direkt zwischen Branches. Der Wechsel zwischen Branches ist ein schneller Vorgang, und es empfiehlt sich, sicherzustellen, dass Sie sich jederzeit im richtigen Branch befinden.

Letzte Version abrufen

Es gibt viele Gründe, die für Aktualisierungen sprechen. Wenn Sie beispielsweise den Kontext zu einem anderen Projekt wechseln müssen, aktualisieren Sie Ihren Entwicklungscomputer mit der neuesten Version der Codebasis.

Befehlszeile

git pull

oder

git fetch

gefolgt von

git merge FETCH_HEAD

Rufen Sie immer die neueste Version ab, und lösen Sie Mergekonflikte lokal.

Rückgängigmachen lokaler Änderungen

Es kann einen triftigen Grund geben, alle Revisionen, die Sie in Ihrem lokalen Repository vorgenommen haben, rückgängig zu machen und Ihre Arbeitsumgebung auf die neueste Version aus dem Remoterepository zurückzusetzen.

Befehlszeile

git reset --hard HEAD

gefolgt von

git pull origin

gefolgt von

git clean -xdf

Das Szenario ist gleichbedeutend mit Get > Latest Version mit den Optionen Overwrite writable files that are not checked out und Overwrite all files if the local version matches the specified version in TFVC.

Alternativ können Sie ihr lokales Repository manuell löschen – natürlich nachdem Sie eine überprüfte Kopie erstellt haben – und das Repository dann mit clone erneut klonen.

Git-Benutzern stehen viel mehr Aktionen und Optionen zur Verfügung. Hier sind einige nützliche Referenzwebsites für die weitere Lektüre:

Fragen und Antworten

Was ist mit Synchronisierung?

Macht Commit and Sync der Visual Studio-IDE all dies nicht auf magische Weise?“ fragen Sie sich vielleicht.

Wählen Sie Git>Committen oder stashen aus, um Git-Änderungen zu öffnen. Wählen Sie das Dropdownmenü Alle committen und dann Alle committen und synchronisieren aus.

Oder wählen Sie in Team Explorer das Dropdownmenü Committen und dann Befehl und Synchronisierung aus.

Committen und Synchronisieren im Team Explorer

Magie bringt Verantwortung mit sich! Viele Benutzer mögen die Synchronisierung (sync) nicht, weil sie manchmal Ihren lokalen Verlauf durcheinander bringen und einen Mergecommit über Ihrem aktuellen Commit hinzufügen kann. Sobald ein fehlerhaftet Zustand vorliegt, müssen Sie auf die Befehlszeile zurückgreifen, weil es derzeit keine Unterstützung für Zurücksetzen in der IDE gibt.

Autoren: Jesse Houwing, Martin Hinshelwood, Mike Fourie und Willy Schaub von ALM | DevOps Rangers. Stellen Sie hier eine Verbindung mit ihnen her.

(c) 2015 Microsoft Corporation. Alle Rechte vorbehalten. Dieses Dokument wird „wie besehen“ zur Verfügung gestellt. Die in diesem Dokument enthaltenen Informationen und zum Ausdruck gebrachten Ansichten, auch URL- und andere Internet-Websitebezüge, können ohne vorherige Ankündigung geändert werden. Sie tragen das alleinige Verwendungsrisiko.

Dieses Dokument stellt keinerlei Rechtsansprüche auf geistiges Eigentum in Microsoft-Produkten jeglicher Art bereit. Dieses Dokument darf für interne Referenzzwecke kopiert und verwendet werden.