Auswählen der richtigen Versionskontrolle für Ihr Projekt

Azure Repos | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017 | TFS 2015 | VS 2017 | VS 2015 | VS 2013

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 die Versionskontrolle für neue Projekte. Sie sollten Git für die Versionskontrolle in Ihren Projekten verwenden, es sei denn, Sie benötigen eine bestimmte Notwendigkeit für zentralisierte Versionskontrollfunktionen in TFVC.

Sie können TFVC-Repositorys mit Git im gleichen Project sodass TFVC später einfach hinzugefügt werden kann, wenn Sie eine zentralisierte Versionskontrolle benötigen. Verwenden Sie diese Anweisungen, um einen neuen Repositorytyp für ein vorhandenes Projekt einzurichten.

Git (verteilt)

Git ist ein verteiltes Versionskontrollsystem. Jeder Entwickler verfügt auf dem 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 TFS ist Git Standard. Sie können Visual Studio mit Git-Diensten von Drittanbietern verwenden, und Sie können die Git-Clients von Drittanbietern auch mit TFS 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 verfügt über zwei Workflowmodelle:

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

  • Lokale Arbeitsbereiche: Jedes Teammitglied nimmt eine Kopie der neuesten Version der Codebasis mit und arbeitet bei Bedarf offline. 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 ÜBERSICHT ÜBER TFVC.

Wechsel von TFVC zu Git

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

Git- und TFVC-Funktionen

Benötigen Sie weitere Hilfe, um eine Auswahl zu treffen? Diese Diagramme können helfen.

Funktion

TFVC

Git

Änderungen

Teammitglieder können Dateien auf ihren Entwicklungscomputern gleichzeitig ändern. Sie laden Changesets (Einchecken) auf den Server hoch, wenn Sie sie erstellen. Änderungen können jederzeit hochgeladen werden. Möglicherweise werden Sie jedoch durch Konflikte unterbrochen.

Sie können den Kommentar eines Changesets ändern, nachdem Sie es einchecken. 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. Ältere Commits können nicht geändert werden. 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 installieren in der Regel einen zusätzlichen Arbeitsbereich für jede Verzweigung, die sie bearbeiten.

Änderungen in jedem Branch sind unabhängig voneinander, sodass Sie'sie nicht einchecken müssen, bevor Sie von einer Verzweigung zu einer anderen wechseln. Das Zusammenführen zwischen gleichgeordneten Branches erfordert eine basislose Zusammenführung.

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

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

Verzweigung ist einfach und pfadunabhängig. Viele Entwickler erstellen (manchmal täglich) eine Verzweigung für jede neue Funktion, die sie codieren. 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 diese freigeben, wenn sie'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-Verzweigungen zum Wechseln von Kontexten, Zum Aussetzen der Arbeit und zum Isolieren von Risiken.

Konfliktlösung

Möglicherweise müssen Sie Konflikte beim Ein-, Einchecken, Zusammenführen oder Entschlüssen 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 lösen.

File Storage

Sie können große Binärdateien einchecken. Möglicherweise möchten Sie auch NuGet kombinationsweise oder als Alternative verwenden.

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

Verlauf

Der Dateiverlauf wird nicht auf dem Client-Entwicklungscomputer repliziert und kann daher nur angezeigt werden, wenn'mit dem Server verbunden sind. Sie können den Verlauf im Visual Studio und im Webportal anzeigen. 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 Bezeichnungen auf eine Version einer oder mehrere Dateien entweder über Visual Studio eingabeaufforderung anwenden. 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 kehren.

Skalieren

Sie können mit lokalen Arbeitsbereichenan kleinen oder sehr großen Projekten arbeiten. Unterstützt umfangreiche Projekte (Millionen von Dateien pro Branch und große Binärdateien) mithilfe von Serverarbeitsbereichen.

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

Eigenschaften

TFVC

Git-Client

Server

Azure DevOps Services, TFS

Azure DevOps Services, TFS- und Git-Drittanbieterdienste

Alerts

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

Überwachbarkeit

Da Ihr Team seine gesamte Arbeit in einem zentralisierten System eincheckt, können Sie ermitteln, welcher Benutzer in einem Changeset eingecheckt wurde, und vergleichen, um zu sehen, was sich geändert hat. Wenn Sie sich eine Datei ansehen, können Sie sie kommentieren, um zu identifizieren, wer einen Codeblock geändert hat und wann sie dies getan hat.

Sie können ermitteln, welcher Benutzer einen Commit gepusht hat. (Jeder kann eine beliebige Identität als Autor oder Committer beanspruchen.) Sie können ermitteln, wann Änderungen vorgenommen wurden und was geändert wurde, indem Sie Verlauf, Vergleich und Anmerkungen verwenden.

Builds (durch TFBuild automatisiert)

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

Sie können die meisten TFBuild-Funktionen verwenden, um jeweils ein Projekt und mindestens ein Repository zu erstellen.

Codebewertungen

Ja; siehe Tag im Leben eines DevOps-Entwicklers: Anhalten der Arbeit, Beheben eines Fehlers und Durchführen einer Codeüberprüfung. Für einfachere Diskussionen können Sie auch kommentaren und E-Mails zu einem Changeset über das Webportal senden.

Ja; siehe Durchführen eines Pull Requests. Für einfachere Diskussionen können Sie auch kommentaren und E-Mails zu einem Commit über das Webportal senden.

Dateien

Jedes Projekt enthält alle Dateien unter einem einzigen Stammpfad (z. B. $/FabrikamTFVC). Sie können Berechtigungen auf Dateiebene anwenden. Sie können Dateien sperren.

Sie können Ihre Dateien im Webportal durchsuchen und Quellcodeverwaltungs-Explorer in Visual Studio verwenden.

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 per Push an mehrere Remoterepositorys übertragen (z. B. sowohl an Ihr Projektrepository als auch an Ihre Website, die auf Windows Azure gehostet wird.

Quality Gates

Sie können CI-Builds, Builds mit abgegrenztem Eincheckvorgang und Eincheckrichtlinien verwenden.

Sie können CI-Builds und geschlossene Eincheckbuilds über Branchrichtlinienverwenden.

Client

Eigenschaften

TFVC

Git-Client

Clientsoftware

Visual Studio Eclipse (mit Team Explorer Everywhere)

Visual Studio, Visual Studio Code, Eclipse und andere Drittanbietertools

Dateien

Sie können Ihre Dateien durchsuchen, indem Sie Quellcodeverwaltungs-Explorer in Visual Studio oder Windows Datei-Explorer oder die Eingabeaufforderung verwenden.

Sie können Ihre Dateien mithilfe des Windows-Datei-Explorers oder der Eingabeaufforderung durchsuchen.

Verwalten der Arbeit auf dem Entwicklungscomputer

Seiten Änderungen, Commits und Verzweigungen

Die Arbeit anhalten

Sie können eine Verzweigung erstellen (in Visual Studio oder über die Eingabeaufforderung) oder verstecken (über die Eingabeaufforderung).

Visual Studio-Kompatibilität

Visual Studio 2013+

Sie können auch Visual Studio 2012 Update 4 verwenden (Sie müssen auch Visual Studio-Tools für Gitinstallieren).

Webportal

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

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

Integration und Migration

Eigenschaften

TFVC

Git-Client

Migrationspfad