Verwenden von Befehlen der Team Foundation-Versionskontrolle

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

Visual Studio 2022 | Visual Studio 2019 | Visual Studio 2017 | Visual Studio 2015 | Visual Studio 2013

Sie können Versionssteuerungsbefehle verwenden, um fast alle Aufgaben auszuführen, die Sie in Visual Studio ausführen können, und auch mehrere Aufgaben, die in Visual Studio nicht ausgeführt werden können. Sie können das tf.exe Tool verwenden, um Versionssteuerungsbefehle aus einer Eingabeaufforderung oder in einem Skript auszuführen.

Ausführen eines Befehls

Um die Visual Studio-Eingabeaufforderung zu starten, wählen Sie unter Windows Start die Entwicklerbefehlsaufforderung für VS2019 oder frühere Versionsverknüpfung aus.

Hinweis

Bei Visual Studio 2017 und späteren Versionen befindet sich die tf.exe Binärdatei nicht mehr an einem festen Speicherort im Visual Studio-Installationspfad wie in früheren Versionen. (z.B. C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE). Skripts, die tf.exe verwenden, sollten keinen Pfad zur Datei basierend auf dem Visual Studio-Installationspfad festlegen.

In den meisten Fällen wird der Versionskontrollbefehl im Kontext eines Verzeichnisses ausgeführt, das im Arbeitsbereich zugeordnet ist. So wird c:\\code\\SiteApp\\Main\\z. B$/SiteApp/Main/. dem zugeordnet. So rufen Sie die neueste Version aller Elemente im Arbeitsbereich ab:

c:\code\SiteApp\Main\SolutionA>tf get

Einrichten des Entwickler-Computers und Verwalten von Arbeitsbereichen

Ihr Arbeitsbereich ist eine lokale Kopie der Codebase Ihres Teams. Da es sich um eine lokale Kopie auf dem Entwickler-Computer handelt, können Sie den Code isoliert entwickeln und testen, bis Sie bereit sind, die Arbeit einzuchecken. Im Folgenden werden einige Befehle zum Verwalten des Arbeitsbereichs aufgeführt:

Siehe auch: Einrichten von Team Foundation-Versionskontrolle auf Ihrem Dev-Computer, Erstellen und Arbeiten mit Arbeitsbereichen

Entwickeln Ihrer App

Verwenden Sie diese Befehle, um mit dem Team eine App unter Versionskontrolle zu entwickeln:

Siehe auch: Entwickeln Ihrer App im Team Foundation-Versionskontrolle

Die Arbeit anhalten

Aus unterschiedlichen Gründen ist es manchmal erforderlich, laufende Arbeiten vorübergehend ganz oder teilweise zurückzustellen. Verwenden Sie zum Anhalten und Fortsetzen der Arbeit sowie zum Verwalten von Shelvesets folgende Befehle:

Siehe auch: Anhalten Sie Ihre Arbeit und verwalten Sie Ihre Regale.

Arbeit hinzufügen

Verwenden Sie den Checkin-Befehl, um ihren Code in der Codebasis des Teams zu überprüfen:

  • Checkin-Befehl: Überprüft ausstehende Änderungen an Dateien oder Ordnern auf dem Server.

Siehe auch: Überprüfen Sie Ihre Arbeit in der Codebase des Teams

Dateien verwalten und Probleme lösen

Anzeigen und Verwalten von Dateien und Ordnern unter Versionskontrolle

Siehe auch: Verwenden des Quellcodeverwaltungs-Explorers zum Verwalten von Dateien unter Versionskontrolle

Anzeigen und Verwalten von früheren Versionen

Siehe auch: Anzeigen und Verwalten früherer Versionen

Vergleichen von Ordnern und Dateien

Siehe auch: Anzeigen und Verwalten früherer Versionen

Beheben von Dateikonflikten

Siehe auch: Beheben von Team Foundation-Versionskontrolle Konflikten.

Arbeiten mit Versionssteuerungssperren

Siehe auch: Arbeiten mit Versionssteuerungssperren.

Risiken isolieren

Verwenden Sie die folgenden Befehle, um Risiken mit Verzweigungen zu isolieren:

Siehe auch: Verwenden Von Zweigstellen zum Isolieren des Risikos in Team Foundation-Versionskontrolle.

Verwalten der Versionskontrolle

Verwenden Sie die folgenden Befehle, um Ihr Versionssteuerungssystem zu verwalten:

Siehe auch: Konfigurieren von Auscheckeinstellungen.

Hilfe zu Versionskontrollbefehlen

Verwenden Sie die folgenden Befehle, um weitere Informationen zu Versionskontrollbefehlen zu erhalten:

Die Befehlssyntax verstehen

Die Syntax eines jedes Befehls wird oben im jeweiligen Referenzthema angezeigt.

Erforderliche und optionale Argumente

Argumente, die nicht in eckigen Klammern eingeschlossen sind, sind erforderlich. [Klammern] geben optionale Argumente an, die nicht zum Abschließen eines Befehls erforderlich sind. Einige optionale Argumente weisen jedoch Standardwerte auf, die für den Befehl angewendet werden, auch dann, wenn die Option nicht angegeben ist.

Exklusive Argumente

Wenn Optionen durch ein Rohr (|) getrennt sind, können Sie eine der Optionen angeben.

Wörtliche und austauschbare Argumente

Fett formatierte Elemente sind Optionen, die wörtlich eingefügt werden. Kursivisierte Elemente sind Argumente, die Sie durch tatsächliche Zeichen ersetzen müssen, um einen Befehl auszuführen.

Befehlsverknüpfungen und -aliase

Einige Befehle unterstützen Verknüpfungen. Sie können beispielsweise den Befehl "Löschen " mit tf delete oder tf del aufrufen.

Beispiel

Beispiel: Der Befehl "Auschecken":

tf checkout [/lock:( none|checkin|checkout)] [/recursive] itemspec [/login: username,[ password]]

Sehen wir uns die Argumente aus diesem Beispiel an:

  • itemspec: Sie müssen dieses Argument durch eine Itemspec ersetzen, die die elemente angibt, die Sie auschecken.

  • /lock:(none|checkin|checkout): Sie sind nicht erforderlich, um die Option /lock anzugeben. Wenn Sie es nicht angeben, gibt das System standardmäßig /lock:none an. Andernfalls können Sie eine der Sperroptionen angeben.

  • Die folgenden Argumente sind optional. Werden diese nicht bereitgestellt, werden keine ihrer Effekte auf den Befehl angewendet:

    • /rekursiv: Wenn Sie mehrere Elemente in einem Ordner rekursiv auschecken möchten, müssen Sie diese Option verbatim angeben.

    • /login:Benutzername,Kennwort: Wenn Sie den Befehl als einen anderen Benutzer ausführen möchten, müssen Sie die Option /login verbatim angeben, Den Benutzernamen durch den Namen des Benutzers ersetzen und ggf. das Kennwort angeben.

Von einem Befehl betroffene Elemente angeben

Sie können itemspecs und versionspecs verwenden, um die von einem Befehl betroffenen Elemente anzugeben.

Betroffene Elemente mit einem itemspec-Argument angeben

Sie verwenden eine Itemspec (Elementspezifikation), um die von einem Befehl betroffenen Elemente anzugeben. Elemente können entweder auf einem Clientcomputer oder auf dem Team Foundation Server angegeben werden. Sie können Wildcardzeichen wie \* und ?verwenden.

Client itemspec-Argumente

Ein Client itemspec-Argument gibt einen Pfad zu Elementen auf einem Clientcomputer an, z. B. einen Ordner (z. B. c:\code\SiteApp\Main\SolutionA\), eine Datei (z. B. c:\code\SiteApp\Main\SolutionA\Project1\program.cs oder mehrere Dateien (z. B. c :\code\SiteApp\Main\SolutionA\*.cs). Sie können auch UNC-Pfade wie \\myshare\code\SiteApp\Main angeben.

Server itemspec-Argumente

Ein Server itemspec-Argument gibt einen Pfad zu Elementen auf Ihrem Team Foundation Server an, z. B. einen Ordner (z. B. $/SiteApp/Main/SolutionA) eine Datei (z. B. $/SiteApp/SiteApp/Main/SolutionA/ Project1/program.cs oder mehrere Dateien (z. B. $/SiteApp/Main/ SolutionA/*.cs).

Server-itemspec-Argumente werden in der Regel zum Ausführen von Befehlen für Elemente außerhalb des Clientcomputers verwendet. Sie arbeiten beispielsweise an einem Dev-Computer und müssen einige Überarbeitungsverlaufsdaten zu einigen Elementen abrufen, die sich in einer Projektsammlung befinden, in der Sie nicht arbeiten:

c:\>tf history /collection:http://fabrikam-3:8080/tfs/DefaultCollection
$/SiteApp/Main/SolutionA/Project1/* /recursive  
/noprompt 

Mehrere itemspec-Argumente

Für einige Befehle können Sie mehrere Itemspec-Argumente angeben. Zum Beispiel:

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

Checkt program.cs und program2.c aus.

Betroffene Elementversionen mit einem versionspec-Argument angeben

Sie verwenden eine Versionspec (Versionsspezifikation), um die Version von Elementen anzugeben, die von einem Befehl betroffen sind. So stellen Sie eine Versionspec bereit, die Sie können:

  • Verwenden Sie die Option /version . Beispiel: /version:C44.

  • Fügen Sie die versionspec mit einem Semikolon an eine itemspec an. Beispiel: program1.cs; C44.

Wenn Sie den Befehl "Verlauf " oder " Unterschied" verwenden, können Sie einen Bereich von Versionen angeben, indem Sie die Versionen mit einer Tilde (~) trennen. Zum Beispiel:

c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2012~D4/24/2012

Verwenden Sie die folgende Syntax, um eine Versionspec anzugeben.

Typ

Syntax

Beschreibung


Changeset

[C] N

Gibt Elemente auf Grundlage einer Changesetnummer an. Wurde ein Element, das sich im Gültigkeitsbereich befindet, nicht im angegebenen Changeset geändert, wird die neueste Version des Elements übernommen, das vor dem angegebenen Changeset vorhanden war.

Tipp

Sie können die C auslassen, wenn Sie nur eine Zahl angeben. Beispiele

c:\code\SiteApp\Main>tf get readme.txt /v:C8

-- oder --

c:\code\SiteApp\Main>tf get readme.txt /v:8

– oder –

c:\code\SiteApp\Main>tf get readme.txt;8

Wurde "readme.txt" in Changeset 8 geändert, wird diese Dateiversion abgerufen. Andernfalls wird die neueste Version dieser Textdatei vor Version 8 abgerufen.

Bezeichnung

L-Bezeichnung

Gibt Elemente an, auf die die Bezeichnung angewendet wurde.

Beispiele

c:\code\SiteApp\Main>tf get readme.txt;LJulyHotFix

Ruft die Version von readme.txt ab, die juliHotFix bezeichnet wurde.

c:\code\SiteApp\Main>tf get /version:LLastKnownGood

Ruft die Version aller gekennzeichneten Elemente (und löscht diese Elemente, die nicht beschriftet sind) im Arbeitsbereich, da sie vorhanden sind, wenn das als LastKnownGood bezeichnete Änderungsset erstellt wurde, beispielsweise als Teil eines automatisierten Buildprozesses.

Datum und Uhrzeit

Dyyyy-mm-ddTxx:xx

- oder -

Dmm/dd/yyyy

- oder -

Irgendein von .NET Framework unterstütztes Format.

- oder -

Irgendein auf dem lokalen Computer unterstütztes Datumsformat.

Gibt ein Changeset an, das zu einem angegebenen Datum und zu einer angegebenen Uhrzeit erstellt wurde.

Beispiele

c:\code\SiteApp\Main>tf get /version:D2004-03-22

Aktualisiert den Arbeitsbereich entsprechend der am 22.03.2004 um 00:00 Uhr vorhandenen Codebase.

c:\code\SiteApp\Main>tf get /version:D2004-03-22T09:00

Aktualisiert den Arbeitsbereich entsprechend der am 22.03.2004 um 09:00 Uhr vorhandenen Codebase.

Weitere Informationen zu .NET Framework unterstützten Datums- und Uhrzeitformaten finden Sie unter DateTime- und Standarddatums- und Zeitformatzeichenfolgen.

Arbeitsbereich (aktuell)

W

Gibt die Version im Arbeitsbereich an.

Arbeitsbereich (angegeben)

W-Arbeitsbereichname; Arbeitsbereichsbesitzer

Gibt die Version in einem angegebenen Arbeitsbereich an.

Beispiel: WResolveRIConflicts; PeterW

Tipp

T

Gibt die neueste Version an.

Befehlsfunktionsänderungsoptionen verwenden

Befehlsfunktionen können durch allgemeine Optionen geändert werden.

Mit der /noprompt-Option Dateneingabeanforderungen unterdrücken und Ausgabedaten zum Eingabeaufforderungsfenster umleiten

Verwenden Sie die Option "/noprompt ", um Anforderungen für die Dateneingabe zu unterdrücken und Ausgabedaten in das Eingabeaufforderungsfenster umzuleiten. Diese Option kann hilfreich sein, wenn Sie Versionskontrollbefehle in einem Skript verwenden müssen, weil der Befehl ohne Intervention durch einen Benutzer fortschreitet und die Daten dem Skript für Vorgänge, z. B. eine Analyse oder Erfassung, zur Verfügung stehen.

Wenn Sie diese Option verwenden, geschieht Folgendes:

  • Sämtliche Eingabeanforderungen werden unterdrückt:

    • Es werden keine Fragen im Eingabeaufforderungsfenster angezeigt. Wenn Sie z. B. den Befehl "Rückgängig " mit dieser Option verwenden, wird das System nicht aufgefordert, zu bestätigen, ob Sie mit dem Rückgängigmachen der Änderungen fortfahren möchten.

    • Es werden keine Fenster und Dialogfelder angezeigt. Sie verwenden beispielsweise diese Option mit dem Befehl "Checkin". Anstatt das Dialogfeld "Einchecken" anzuzeigen, um Ihre Optionen zu bestätigen (welche Elemente Sie einchecken möchten oder welche Arbeitselemente zugeordnet werden sollen), wird das System ohne Bestätigung mit dem Einchecken fortfahren.

  • Leitet Ausgabedaten zur Eingabeaufforderung um. Sie verwenden diese Option beispielsweise mit dem Befehl "Verlauf". Die Daten werden im Eingabeaufforderungsfenster anstelle des Verlaufsfensters angezeigt.

Mit der /login-Option beim Ausführen eines Befehls Anmeldeinformationen angeben

Verwenden Sie die Option /Login , um das Team Foundation Server-Benutzerkonto anzugeben, um einen Befehl auszuführen. Diese Option kann hilfreich sein, wenn Sie auf dem Computer eines anderen Teammitglieds arbeiten.

So arbeitet beispielsweise Julia mit Peter auf seinem Entwickler-Computer. Sie verwendet den Befehl "Sperren ", um eine Datei zu entsperren, die sie zuvor gesperrt hat:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:JuliaI,JuliaPassword

Um zu vermeiden, dass ihr Kennwort in der Eingabeaufforderung angezeigt wird, kann sie den Befehl ohne Kennwort eingeben:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:JuliaI

Nachdem sie diesen Befehl eingegeben hat, wird sie in einem Dialogfeld, das die Eingabe maskiert, zum Eingeben des Kennworts aufgefordert.

Mit der /lock-Option eine Sperre anwenden oder entfernen

Wichtig

Verwenden Sie als bewährte Methode die Option "/lock " mit Diskretion und benachrichtigen Sie Ihre Teamkollegen darüber, warum Sie ein Element sperren, und wenn Sie die Sperre entfernen möchten.

Verwenden Sie die Option "/lock ", um eine Sperre gleichzeitig anzuwenden oder zu entfernen, wenn Sie einen anderen Befehl wie " Hinzufügen " oder "Bearbeiten" ausführen.

/lock:(none|checkin|checkout)
  • Keine: Es wird keine Sperre für ein Element platziert. Wenn bereits eine Sperre vorhanden ist, wird sie aufgehoben.

  • Einchecken oder Auschecken: Wendet eine Sperre an. Weitere Informationen finden Sie unter "Grundlegendes zu Sperrtypen".

Hinweis

In einigen Fällen kann ein Fehler beim Sperrvorgang auftreten:

  • Wenn andere Benutzer eines der angegebenen Elemente gesperrt haben, tritt beim Sperrvorgang ein Fehler auf.
  • Das System ignoriert diesen Wechsel, wenn es für dieses Element bereits eine ausstehende Änderung gibt. In diesem Fall müssen Sie den Sperrbefehl verwenden, um eine Sperre für ein Element zu ändern.

Abkürzungen für Optionen verwenden

Sie können die folgenden Optionen abkürzen.

Option

Optionsalias

/comment

-C

/computer

-M

/delete

-D

/force

-P

/format

-F

/help

-?, -H

/lock

-K

/login

-Y

/newname

-N

/noprompt

-I

/owner

-O

/rekursiv

-R

/server

-S

/slotmode

-X

/template

-T

/user

-U

/version

-V

/workspace

-W

Exitcodes verstehen

Versionskontrollbefehle geben die folgenden Exitcodes zurück:

Exitcode

Definition

0

Erfolg.

1

Ein partieller Erfolg bedeutet, dass nicht alle und möglicherweise kein Vorgang erfolgreich ausgeführt werden konnte.

2

Nicht erkannter Befehl.

100

Kein Vorgang konnte erfolgreich ausgeführt werden.

Zum Beispiel:

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

Wenn eine der Dateien, die Sie auschecken möchten, auf dem Server nicht vorhanden ist, gibt der Befehl 1 zurück, um einen Teilerfolg anzugeben.