Auswählen der richtigen Versionskontrolle für Ihr Projekt
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019 | TFS 2018
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 vorhandenen TFVC-Projekte nach Git zu verschieben. TFVC gilt als vollständig. Azure DevOps bleibt mit TFVC kompatibel, Git erhält jedoch 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. 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 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 Standardmäßig Git. Sie können Visual Studio mit Git-Diensten von Drittanbietern und Git-Clients von Drittanbietern mit Azure DevOps Server verwenden.
Weitere Informationen finden Sie unter Git und Azure Repos.
TFVC (zentral)
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: 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 Team Foundation-Versionskontrolle?
Wechsel von TFVC zu Git
Wenn Sie über vorhandene TFVC-Repositorys verfügen, können Sie diese mithilfe des Tools git-tfs zu Git-Repositorys migrieren. Mit dem Tool können Sie ein TFVC-Repository in nur wenigen Befehlen zu einem Git-Repository migrieren .
Git- und TFVC-Funktionen
Die folgende Tabelle enthält eine Zusammenfassung darüber, wie TFVC und Git die Standard-Funktionen der Versionskontrolle unterstützen.
Funktion
TFVC
Git-Client
Änderungen
Teammitglieder können Dateien auf ihren Entwicklungscomputern gleichzeitig ändern. Sie laden Changesets (Einchecken) beim Erstellen auf den Server hoch. Ä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 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 abrufen, 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 richten in der Regel einen anderen Arbeitsbereich für jeden Branch ein, an dem sie arbeiten.
Änderungen in jedem Branch sind unabhängig voneinander, sodass Sie sie nicht einchecken müssen, bevor Sie von einem Branch zu einem 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 Isolieren von Risiken in Team Foundation-Versionskontrolle.
Verzweigung ist einfach und pfadunabhängig. Viele Entwickler erstellen einen Branch für jedes neue Feature, das sie programmieren, manchmal 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 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 von Kontexten, Anhalten der Arbeit und Isolieren von Risiken.
Konfliktlösung
Möglicherweise müssen Sie Konflikte lösen , wenn Sie einsteigen, einchecken, zusammenführen oder nicht 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 an der Eingabeaufforderung beheben.
File Storage
Sie können große Binärdateien einchecken. Sie können NuGet auch 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 auf dem Cliententwicklungscomputer nicht repliziert und kann daher nur angezeigt werden, wenn Sie mit dem Server verbunden sind. Sie können den Verlauf in 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 von mindestens einer Datei in Visual Studio oder über die 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 rückgängig machen.
Skalieren
Sie können mit lokalen Arbeitsbereichen an kleinen oder sehr großen Projekten arbeiten. Unterstützung massiver Skalierungsprojekte (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
In der folgenden Tabelle sind die Features zusammengefasst, die mit den unterstützten Servern für die einzelnen Versionskontrollsysteme verfügbar sind.
Funktion
TFVC
Git-Client
Server
Azure DevOps Services, Azure DevOps Server
Azure DevOps Services-, Azure DevOps Server- und Git-Drittanbieterdienste
Alerts
Teammitglieder können E-Mail-Benachrichtigungen erhalten, wenn Eincheckvorgänge erfolgen.
Teammitglieder können E-Mail-Benachrichtigungen empfangen, wenn Commits mittels Push an den Server übertragen werden.
Überwachbarkeit
Da Ihr Team all seine Arbeit in einem zentralisierten System eincheckt, können Sie ermitteln, welcher Benutzer ein Changeset eingecheckt hat, und vergleichen , um zu sehen, was er geändert hat. Wenn Sie sich eine Datei ansehen, können Sie sie kommentieren , um zu ermitteln, wer einen Codeblock geändert hat und wann er es getan hat.
Sie können ermitteln, welcher Benutzer einen Commit gepusht hat. (Jeder kann eine beliebige Identität als Autor oder Person beanspruchen, die den Commit vorgenommen hat.) Mithilfe des Verlaufs, Vergleichens und Kommentierens können Sie ermitteln, 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 innerhalb der Projektsammlung zu erstellen.
Sie können die meisten TFBuild-Funktionen verwenden, um jeweils ein Projekt und jeweils ein oder mehrere Repositorys zu erstellen.
Codebewertungen
Weitere Informationen finden Sie unter Tag im Leben eines Devops-Entwicklers: Angehaltene Arbeit, Beheben eines Fehlers und Durchführen einer Codeüberprüfung. Für einfachere Diskussionen können Sie auch kommentieren und E-Mails zu einem Changeset über das Webportal senden.
Weitere Informationen finden Sie unter Überprüfen von Pull Requests. Für einfachere Diskussionen können Sie auch über das Webportal Kommentare zu einem Commit kommentieren und E-Mails zu einem Commit senden.
Dateien
Jedes Projekt enthält alle Dateien unter einem einzelnen 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 die Quellcodeverwaltung 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 eine 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, z. B. in Ihr Projektrepository und auf Ihre in Azure gehostete Website.
Quality Gates
Sie können CI-Builds (Continuous Integration), Gated Check-In-Builds und Check-In-Richtlinien verwenden.
Sie können CI-Builds und gated Check-In-Builds über 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 mithilfe der Quellcodeverwaltung Explorer in Visual Studio oder mithilfe von Windows Explorer oder der Eingabeaufforderung durchsuchen.
Sie können Ihre Dateien mithilfe von Windows Explorer oder der Eingabeaufforderung durchsuchen.
Verwalten der Arbeit auf dem Entwicklungscomputer
Ausstehende Änderungen und Meine Arbeitsseiten in Visual Studio Team Explorer.
Seiten Änderungen, Commits und Verzweigungen
Die Arbeit anhalten
Sie können Arbeit auf der Seite Meine Arbeitanhalten oder Ihre Änderungen auf der Seite Ausstehende Änderungen zurückstellen. 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 über die Eingabeaufforderung stashen.
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 (einschließlich Verzweigungen) durchsuchen, den Verlauf anzeigen, Changesets und Shelvesets kommentieren und kommentieren und andere Aufgaben ausführen, z. B. das Ad-hoc-Herunterladen ausgewählter Teile Ihrer Codebasis als .zip-Datei .
Sie können Ihre Codebasis durchsuchen, den Verlauf anzeigen, Verzweigungen vergleichen, Commits kommentieren und kommentieren und andere Aufgaben ausführen, z. B. das Ad-hoc-Herunterladen ausgewählter Teile Ihrer Codebasis als .zip-Datei .
Migration
Informationen zum Migrieren von TFVC zu Git finden Sie unter Migrieren von TFVC zu Git.