Auswählen der richtigen Versionskontrolle für Ihr Projekt

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

Visual Studio 2019 | Visual Studio 2022

Unabhängig von der Größe Ihres Softwareprojekts empfiehlt es sich, die Versionskontrolle so früh wie möglich zu verwenden. Azure Repos unterstützt zwei Arten der Versionskontrolle: Git und Team Foundation-Versionskontrolle (TFVC).

Welches Versionskontrollsystem sollte ich verwenden?

Git ist der Standardanbieter für Versionskontrolle für neue Projekte. Sie sollten Git für die Versionskontrolle in Ihren Projekten verwenden und damit beginnen, Ihre bestehenden TFVC-Projekte auf Git umzustellen. TFVC gilt als abgeschlossenes Feature. Azure DevOps wird die Kompatibilität mit TFVC beibehalten, aber Git erhält alle zukünftigen Investitionen.

Sie können TFVC-Repositorys mit Git im selben Projekt verwenden, sodass es einfach ist, TFVC später hinzuzufügen, wenn Sie eine zentralisierte Versionskontrolle benötigen. Zum Einrichten eines neuen Repositorytyps für ein vorhandenes Projekt verwenden Sie diese Anweisungen.

Git (verteilt)

Git ist ein verteiltes Versionskontrollsystem. Jeder Entwickler verfügt auf seinem Entwicklungscomputer über eine Kopie des Quellrepositorys. Entwickler können für alle Änderungen auf ihrem Entwicklungscomputer Commits ausführen und Versionskontrollvorgänge wie den Aufruf von Versionsgeschichten oder Vergleichen ohne Netzwerkverbindung vornehmen. Verzweigungen sind einfach. Wenn Sie Kontexte wechseln müssen, können Sie eine private lokale Verzweigung erstellen. Sie können schnell von einer Verzweigung in eine andere wechseln, um verschiedenen Variationen der Codebasis zu untersuchen. Später können Sie die Verzweigung entweder zusammenführen, veröffentlichen oder löschen.

Hinweis

Git in Visual Studio, Azure DevOps Services und Azure DevOps Server ist Standard-Git. Sie können Visual Studio mit Git-Diensten von Drittanbietern verwenden, und Sie können auch Git-Clients von Drittanbietern mit Azure DevOps Server verwenden.

Weitere Informationen finden Sie unter Git und Azure Repos.

TFVC (zentralisiert)

Team Foundation-Versionskontrolle (TFVC) ist ein zentralisiertes Quellcodeverwaltungssystem. In der Regel verfügen Teammitglieder auf ihren Entwicklungscomputern nur über eine Version jeder Datei. Daten zur Versionsgeschichte einer Datei werden nur auf dem Server gespeichert. Verzweigungen sind pfadbasiert und werden auf dem Server erstellt.

TFVC erlaubt zwei Workflowmodelle:

  • Serverarbeitsbereiche: Bevor sie Änderungen vornehmen, checken Teammitglieder die Dateien öffentlich aus. Für die meisten Vorgänge müssen Entwickler eine Verbindung mit dem Server hergestellt haben. Dieses System ermöglicht das Sperren von Workflows. Andere Systeme, die auf diese Weise arbeiten, sind Visual Source Safe, Perforce und CVS. Mit Serverarbeitsbereichen können Sie bis auf sehr große Codebasen mit Millionen von Dateien pro Branch und großen Binärdateien skalieren.

  • Lokale Arbeitsbereiche: Jedes Teammitglied verfügt über eine Kopie der neuesten Codebasisversion und kann damit bei Bedarf offline arbeiten. Entwickler checken ihre Änderungen ein und lösen Konflikte gegebenenfalls auf. Ein anderes System, das nach diese Methode funktioniert, ist Subversion.

Weitere Informationen finden Sie unter Was ist die Team Foundation-Versionskontrolle?

Wechsel von TFVC zu Git

Wenn Sie bereits über TFVC-Repositorys verfügen, können Sie diese mithilfe des Tools git-tfs zu Git-Repositorys migrieren. Mit diesem Tool können Sie ein TFVC-Repository mit nur wenigen Befehlen zu einem Git-Repository migrieren.

Git- und TFVC-Funktionen

Die folgende Tabelle enthält eine Übersicht darüber, wie TFVC und Git die wichtigsten Funktionen der Versionskontrolle unterstützen.

Funktion

TFVC

Git-Client


Änderungen

Teammitglieder können Dateien auf ihren Entwicklungscomputern gleichzeitig ändern. Sie laden Änderungen beim Erstellen auf den Server hoch (einchecken). Änderungen können jederzeit hochgeladen werden. Sie könnten jedoch durch Konflikte unterbrochen werden.

Sie können den Kommentar eines Changesets ändern, nachdem Sie es eingecheckt haben. Sie können Changesets mit Arbeitsaufgaben verknüpfen und sie abgeschlossenen Builds zuordnen.

Teammitglieder können Dateien auf ihren Entwicklungscomputern gleichzeitig ändern. Sie erstellen Commits auf Ihrem Entwicklungscomputer unabhängig von einer Bereitstellung für das Team. Wenn Sie bereit sind, müssen Sie die neuesten Commits pullen, bevor Sie Ihre auf den Server hochladen (pushen). Sie können beim Herunterladen (Pull) durch Konflikte unterbrochen werden.

Sie können das neueste lokale Commit ergänzen. Sie können ältere Commits nicht ändern. Sie können Commits mit Arbeitsaufgaben verknüpfen und sie abgeschlossenen Builds zuordnen.

Sie können lokale Commits über die Eingabeaufforderung ändern und kombinieren.

Verzweigung

Pfadbasierte Verzweigungen werden meistens als langfristige Konstrukte verwendet, um Risiken durch Änderungen zwischen Feature-Teams und Versionen zu minimieren. Teammitglieder legen normalerweise für jeden Branch, an dem sie arbeiten, einen anderen Arbeitsbereich fest.

Die Änderungen in den einzelnen Branches sind unabhängig voneinander, sodass Sie sie nicht erst einchecken müssen, bevor Sie von einem Branch zum anderen wechseln. Das Zusammenführen zwischen nebengeordneten Branches erfordert einen basislosen Mergevorgang.

Sie können Visualisierungen der Verzweigungsstrukturen und der Zusammenführungspunkte von Changesets abrufen.

Weitere Informationen finden Sie unter Verwenden von Branches zum Isolieren von Risiken in der Team Foundation-Versionskontrolle.

Verzweigung ist einfach und pfadunabhängig. Viele Entwickler erstellen einen Branch für jedes neue Feature, das sie codieren, manchmal sogar täglich. Sie können schnell von einer Verzweigung in eine andere wechseln, um verschiedenen Variationen der Codebasis zu untersuchen. Sie können Branches erstellen, die nur auf Ihrem Entwicklungscomputer vorhanden sind, und sie freigeben, wenn Sie dazu bereit sind.
Vor dem Wechseln in eine andere Verzweigung müssen Sie für Änderungen Commits ausführen, Verzweigungen vornehmen, Änderungen verstecken oder rückgängig machen. Das Zusammenführen ist einfach und unabhängig von dem Commit, auf dem die Verzweigung beruht. Sie können Verzweigungen vergleichen, um festzustellen, welche Commits in welchen Verzweigungen vorhanden sind.

Weitere Informationen finden Sie unter Verwenden von Git-Branches zum Wechseln des Kontexts, Anhalten der Arbeit und Isolieren von Risiken.

Konfliktlösung

Sie müssen beim Abrufen, Einchecken, Zusammenführen oder Unshelven möglicherweise Konflikte lösen. Sie können alle Typen von Konflikten in Visual Studio lösen.

Sie müssen beim Herunterladen (Pull) oder Zusammenführen möglicherweise Konflikte lösen. Sie können Inhaltskonflikte in Visual Studio oder über die Eingabeaufforderung beheben.

File Storage

Sie können große Binärdateien einchecken. Sie können auch NuGet in Kombination oder als Alternative verwenden.

Sie können kleine Binärdateien wie normale Dateien einchecken. Wenn Sie mit großen Binärdateien arbeiten, verwenden Sie Git-LFS, um Ihre großen Binärdateien in Azure Repos zu speichern.

Verlauf

Der Dateiverlauf wird nicht auf dem Clientcomputer repliziert und kann daher nur angezeigt werden, wenn Sie mit dem Server verbunden sind. Die Anzeige der Versionsgeschichte ist in Visual Studio und im Webportal möglich. Sie können Dateien Anmerkungen hinzufügen, um anzugeben, wer eine Zeile geändert hat und wann dies erfolgt ist.

Die Dateiversionsgeschichte wird auf dem Cliententwicklungscomputer repliziert und kann deshalb auch dann angezeigt werden, wenn keine Verbindung mit dem Server besteht. Die Anzeige der Versionsgeschichte ist in Visual Studio und im Webportal möglich. Sie können Dateien Anmerkungen hinzufügen, um anzugeben, wer eine Zeile geändert hat und wann dies erfolgt ist.

Taggen von Dateien

Sie können einer Dateiversion (oder mehreren) in Visual Studio oder über die Eingabeaufforderung Bezeichnungen zuweisen. Für jede Dateiversion können Bezeichnung zugewiesen werden.

Sie können Tags über die Eingabeaufforderung an einzelne Commits zuweisen. Sie können Tags im Fenster "Versionsgeschichte" von Visual Studio anzeigen.

Zurücksetzen von Änderungen

Sie können einen Commit rückgängig machen.

Skalieren

Sie können sowohl bei kleinen als auch bei sehr umfangreichen Projekten mit lokalen Arbeitsbereichen arbeiten. Unterstützen Sie riesige Projekte (Millionen Dateien pro Branch und große Binärdateien) durch Serverarbeitsbereiche.

Sie können schnell mit kleinen Projekten beginnen. Sie können bis auf sehr große Projekten skalieren, müssen aber die Modularisierung der Codebasis vorausplanen. Sie können mehrere Repositorys in einem Projekt erstellen.

Server

In der folgenden Tabelle sind die Features zusammengefasst, die mit den unterstützten Servern für jedes Versionskontrollsystem verfügbar sind.

Funktion

TFVC

Git-Client


Server

Azure DevOps Services, Azure DevOps Server

Azure DevOps Services, Azure DevOps Server und Git-Dienste von Drittanbietern

Alerts

Teammitglieder können E-Mail-Benachrichtigungen empfangen, wenn Commits mittels Push an den Server übertragen werden.

Überwachbarkeit

Da das Team seine gesamte Arbeit in ein zentrales System eincheckt, können Sie feststellen, welcher Benutzer ein Changeset eingecheckt hat, und mit Vergleichen ermitteln, was geändert wurde. Beim Untersuchen einer Datei können Sie diese mit Anmerkungen versehen, um festzuhalten, wer einen Codeblock zu welchem Zeitpunkt geändert hat.

Sie können ermitteln, welcher Benutzer einen Commit gepusht hat. (Jeder kann sich als der Ersteller oder die Person ausgeben, die den Commit vorgenommen hat.) Sie können mithilfe von Verlauf, Vergleichen und Anmerkungen feststellen, wann Änderungen vorgenommen wurden und was geändert wurde.

Builds (durch TFBuild automatisiert)

Sie können alle TFBuild-Funktionen verwenden, um eine beliebige Kombination von Inhalten zu erstellen, die Sie in der Projektsammlung benötigen.

Sie können die meisten TFBuild-Funktionen verwenden, um jeweils ein Projekt sowie ein oder mehrere Repositorys zu erstellen.

Codebewertungen

Weitere Informationen finden Sie unter Ein Tag im Leben eines DevOps-Entwicklers: Unterbrechen der Arbeit, Beheben eines Fehlers und Durchführen eines Code Review. Für einfachere Diskussionen können Sie auch E-Mails zu einem Changeset aus dem Webportal kommentieren und senden.

Weitere Informationen finden Sie unter Überprüfen von Pull Requests. Für einfachere Diskussionen können Sie auch E-Mails zu einem Commit aus dem Webportal kommentieren und senden.

Dateien

Für jedes Projekt sind alle Dateien in einem einzelnen Stammpfad (beispielsweise: $/FabrikamTFVC) gespeichert. Sie können auf Dateiebene Berechtigungen zuweisen. Sie können Dateien sperren.

Sie können Ihre Dateien über das Webportal und mit dem Quellcodeverwaltungs-Explorer in Visual Studio durchsuchen.

Ihr Projekt ist nur auf einem Server vorhanden.

Jedes Projekt kann ein oder mehrere Git-Repositorys enthalten, und jedes Git-Repository kann einen oder mehrere Branches enthalten. Sie können Berechtigungen nur bis hin zu Repositorys oder Verzweigungen zuweisen. Dateien können nicht gesperrt werden.

Sie können Ihre Dateien im Webportal durchsuchen.

Sie können Commits an mehrere Remoterepositorys pushen (beispielsweise an das Projektrepository und an die von Azure gehostete Website).

Quality Gates

Sie können CI-Builds (Continuous Integration), Gated-Check-In-Builds und Eincheckrichtlinien verwenden.

Sie können CI-Builds und Gated-Check-In-Builds mithilfe von Branchrichtlinien verwenden.

Client

In der folgenden Tabelle sind die vom Client unterstützten Features zusammengefasst, die je nach ausgewähltem Versionskontrollsystem verfügbar sind.

Funktion

TFVC

Git-Client


Clientsoftware

Visual Studio

Visual Studio, Visual Studio Code, Eclipse und andere Drittanbietertools

Dateien

Sie können Ihre Dateien mit dem Quellcodeverwaltungs-Explorer in Visual Studio oder mit dem Windows Datei-Explorer bzw. über die Eingabeaufforderung durchsuchen.

Sie können Ihre Dateien mit dem Windows Datei-Explorer oder über die Eingabeaufforderung durchsuchen.

Verwalten der Arbeit auf dem Entwicklungscomputer

Seiten Ausstehende Änderungen und Meine Arbeit in Visual Studio Team Explorer.

Seiten Änderungen, Commits und Verzweigungen

Die Arbeit anhalten

Sie können die Arbeit auf der Seite Meine Arbeit unterbrechen oder Ihre Änderungen auf der Seite Ausstehende Änderungenshelven (ablegen). Weitere Informationen finden Sie unter Unterbrechen der Arbeit und Verwalten von Shelvesets.

Sie können einen Branch über Visual Studio oder die Eingabeaufforderung erstellen oder einen Stash über die Eingabeaufforderung ausführen.

Visual Studio-Kompatibilität

Sie können alle unterstützten Versionen von Visual Studio verwenden.

Sie können alle unterstützten Versionen von Visual Studio verwenden.

Webportal

Sie können Ihre Codebasis durchsuchen (einschließlich der Branches), die Versionsgeschichte anzeigen, Changesets und Shelvesets kommentieren und mit Anmerkungen versehen, und andere Aufgaben ausführen, z. B. das Ad-hoc-Herunterladen von ausgewählten Teilen Ihrer Codebasis als ZIP-Datei.

Sie können Ihre Codebasis durchsuchen, die Versionsgeschichte anzeigen, Branches vergleichen, Commits kommentieren und mit Anmerkungen versehen, und andere Aufgaben ausführen, z. B. das Ad-hoc-Herunterladen von ausgewählten Teilen Ihrer Codebasis als ZIP-Datei.

Migration

Informationen zum Migrieren von TFVC zu Git finden Sie unter Migrieren von TFVC zu Git.