Freigeben über


Verwenden von Befehlen der Team Foundation-Versionskontrolle

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

Visual Studio 2019 | Visual Studio 2022

Sie können Versionssteuerungsbefehle verwenden, um fast alle TfVC-Aufgaben (Team Foundation Version Control) auszuführen, die Sie in Visual Studio ausführen können. Sie können auch Versionssteuerungsbefehle verwenden, um mehrere Aufgaben auszuführen, die in Visual Studio nicht ausgeführt werden können. Zum Ausführen von Versionssteuerungsbefehlen über eine Eingabeaufforderung oder innerhalb eines Skripts verwenden Sie das tf.exe Tool.

Ausführen eines Befehls

Um die Visual Studio-Eingabeaufforderung zu starten, wählen Sie von Windows Start die Entwickler-Eingabeaufforderung für VS2022 oder eine frühere Versionsverknüpfung aus.

Hinweis

Für Visual Studio 2019 und höhere Versionen befindet sich die tf.exe Binärdatei nicht mehr an einem festen Speicherort im Visual Studio-Installationspfad wie in einigen früheren Versionen, C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDEz. B. . . Wenn Ihr Skript verwendet tf.exewird, codieren Sie keinen Pfad zu der Datei basierend auf dem Visual Studio-Installationspfad.

In den meisten Fällen führen Sie den Versionssteuerungsbefehl im Kontext eines Verzeichnisses aus, das im Arbeitsbereich zugeordnet ist. Beispiel: $/SiteApp/Main/ ist zugeordnet c:\\code\\SiteApp\\Main\\zu . Verwenden Sie den folgenden Befehl, um die neueste Version aller Elemente im Arbeitsbereich abzurufen:

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

Einrichten Ihres Entwicklungscomputers und Verwalten von Arbeitsbereichen

Ihr Arbeitsbereich ist eine lokale Kopie der Codebasis Ihres Teams. Da es sich um eine lokale Kopie auf Ihrem Entwicklungscomputer handelt, können Sie Ihren Code isoliert entwickeln und testen, bis Sie bereit sind, Ihre Arbeit einzuchecken. Hier sind einige Befehle zum Verwalten Ihres Arbeitsbereichs:

Weitere Informationen finden Sie in den folgenden Ressourcen:

Entwickeln Ihrer App

Verwenden Sie diese Befehle, um Ihre App unter Versionssteuerung mit Ihrem Team zu entwickeln:

Weitere Informationen finden Sie unter Entwickeln Ihrer App im Team Foundation-Versionssteuerelement.

Anhalten Ihrer Arbeit

Aus verschiedenen Gründen müssen Sie manchmal einige oder alle Ihre laufenden Arbeiten außer Kraft setzen. Wenn Sie Ihre Arbeit anhalten und fortsetzen möchten und Ihre Regale verwalten möchten, verwenden Sie die folgenden Befehle:

Weitere Informationen finden Sie unter "Suspend your work and manage your regalets".

Mitwirken

Verwenden Sie den checkin Befehl, um Ihren Code in die Codebasis des Teams einzuchecken:

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

Weitere Informationen finden Sie unter Einchecken Ihrer Arbeit an der Codebasis des Teams.

Verwalten von Dateien und Beheben von Problemen

Verwenden Sie die Ressourcen in den folgenden Abschnitten, um Dateien zu verwalten.

Anzeigen und Verwalten von Versionssteuerungsdateien und -ordnern

Weitere Informationen finden Sie unter Verwenden des Quellcodeverwaltungs-Explorers zum Verwalten von Dateien unter Versionssteuerung.

Anzeigen und Verwalten früherer Versionen

Weitere Informationen finden Sie unter Anzeigen und Verwalten früherer Versionen.

Vergleichen von Ordnern und Dateien

Weitere Informationen finden Sie unter Anzeigen und Verwalten früherer Versionen.

Beheben von Dateikonflikten

Weitere Informationen finden Sie unter Beheben von Team Foundation-Versionssteuerungskonflikten.

Arbeiten mit Versionskontrollsperren

Weitere Informationen finden Sie unter "Arbeiten mit Versionssteuerungssperren".

Isolieren des Risikos

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

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

Verwalten der Versionsverwaltung

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

Weitere Informationen finden Sie unter Konfigurieren von Auscheckeinstellungen.

Abrufen von Hilfe zu Versionssteuerungsbefehlen

Verwenden Sie die folgenden Befehle, um detaillierte Informationen zu Versionssteuerungsbefehlen zu erhalten:

Grundlegendes zur Befehlssyntax

Die Syntax der einzelnen Befehle wird oben in jedem Referenzartikel angezeigt.

Erforderliche und optionale Argumente

Nicht in eckige Klammern gesetzte Argumente sind erforderlich. [Eckige Klammern] geben optionale Argumente an, die zum Abschließen eines Befehls nicht erforderlich sind. Einige optionale Argumente weisen jedoch Standardwerte auf, die auf den Befehl angewendet werden, auch wenn Sie die Option nicht angeben.

Exklusive Argumente

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

Verbatim- und ersetzbare Argumente

Elemente, die nicht in eckige Klammern eingeschlossen sind, sind Optionen, die Sie "verbatim" einschließen. Elemente, die in eckige Klammern (< und >) eingeschlossen sind, sind Argumente, die Sie durch tatsächliche Zeichen ersetzen müssen, um einen Befehl auszuführen.

Befehlsverknüpfungen und Aliase

Einige Befehle unterstützen Tastenkombinationen. Sie können z. B. den Befehl "Löschen" entweder oder tf deletetf del" aufrufen.

Example

Betrachten Sie beispielsweise den Befehl "Auschecken":

tf checkout [/lock:( none|checkin|checkout)] [/recursive] <item-spec> [/login: <username>, [<password>]]

Dieses Beispiel enthält die folgenden Argumente:

  • <item-spec>: Sie müssen dieses Argument durch eine Elementspezifikation ersetzen, die die Elemente identifiziert, die Sie auschecken.
  • Die folgenden Argumente sind optional. Wenn Sie sie nicht angeben, gelten keine der Effekte für den Befehl:
    • /lock:(none|checkin|checkout): Wenn Sie die /lock Option nicht angeben, verwendet /lock:none das System standardmäßig. Andernfalls können Sie eine der anderen Sperroptionen angeben.
    • /recursive: Wenn Sie mehrere Elemente in einem Ordner rekursiv auschecken möchten, müssen Sie diese Option kurz angeben.
    • /login:<username>, <password>: Wenn Sie den Befehl als einen anderen Benutzer ausführen möchten, müssen Sie die /login Option kurz angeben und durch den Namen des Benutzers ersetzen <username> . Ersetzen Sie <password> bei Bedarf das Kennwort des Benutzers.

Angeben der von einem Befehl betroffenen Elemente

Sie können Elementspezifikationen und Versionsspezifikationen verwenden, um anzugeben, welche Elemente von einem Befehl betroffen sind.

Verwenden eines Arguments für die Elementspezifikation zum Angeben betroffener Elemente

Sie verwenden eine Elementspezifikation, um die von einem Befehl betroffenen Elemente anzugeben. Sie können Elemente entweder auf einem Clientcomputer oder auf Ihrem Azure DevOps-Server angeben. Sie können Wildcardzeichen wie * z. B. und ?verwenden.

Argumente für die Clientelementspezifikation

Ein Argument für die Clientelementspezifikation gibt einen Pfad zu Elementen auf einem Clientcomputer an, z. B.:

  • Ein Ordner, z. B . "c:\code\SiteApp\Main\SolutionA\".
  • Eine Datei, z. B. "c:\code\SiteApp\Main\SolutionA\Project1\program.cs".
  • Mehrere Dateien, z. B. c:\code\SiteApp\Main\SolutionA\*.cs.
  • Ein UNC-Pfad (Universal Naming Convention), z. B. \\myshare\code\SiteApp\Main.

Serverelementspezifikationsargumente

Ein Serverelementspezifikationsargument gibt einen Pfad zu Elementen auf Ihrem Azure DevOps-Server an, z. B.:

  • Ein Ordner, z. B. $/SiteApp/Main/SolutionA.
  • Eine Datei, z. B. $/SiteApp/Main/SolutionA/Project1/program.cs.
  • Mehrere Dateien, z. B. $/SiteApp/Main/SolutionA/*.cs.

In der Regel verwenden Sie Serverelementspezifikationsargumente, wenn Sie einen Befehl auf Elementen ausführen müssen, die sich nicht auf dem Clientcomputer befinden. Angenommen, Sie arbeiten an einem Entwicklungscomputer. Wenn Sie einige Überarbeitungsverlaufsdaten zu einigen Elementen abrufen müssen, die sich in einer Projektsammlung befinden, in der Sie nicht arbeiten, können Sie den folgenden Befehl verwenden:

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

Argumente für mehrere Elementspezifikationen

Bei einigen Befehlen können Sie mehrere Elementspezifikationsargumente angeben, z. B.:

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

Mit diesem Befehl werden program.cs und program2.c ausgecheckt.

Verwenden eines Versionsspezifikationsarguments zum Angeben betroffener Versionen von Elementen

Sie verwenden eine Versionsspezifikation, um die Version von Elementen anzugeben, die von einem Befehl betroffen sind. Um eine Versionsspezifikation bereitzustellen, können Sie:

  • Verwenden Sie die /version Option, z. B /version:C44. .

  • Fügen Sie die Versionsspezifikation an eine Elementspezifikation mit einem Semikolon an, program1.cs;C44z. B. .

Wenn Sie den Befehl "Verlauf " oder den Befehl "Differenz" verwenden, können Sie einen Bereich von Versionen angeben, indem Sie die Versionen durch eine Tilde trennen, z. B.:

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

Verwenden Sie die folgende Syntax, um eine Versionsspezifikation anzugeben:

Typ Syntax Description Examples Ergebnis
Änderungssatz [C]<version-number> Gibt Elemente basierend auf einer Changeet-Nummer an. Wenn ein Element, das sich im Bereich befindet, nicht im angegebenen Changeset geändert wurde, verwendet das System die neueste Version des Elements, das vor dem angegebenen Changeset aufgetreten ist. Sie können weglassen C , wenn Sie nur eine Zahl angeben. tf get readme.txt /v:C8

tf get readme.txt /v:8

tf get readme.txt;8
Wenn readme.txt in Changeset 8 geändert wurde, ruft der Beispielcode diese Version der Datei ab. Andernfalls wird die neueste Version von readme.txt vor Version 8 angezeigt.
Etikett L<label> Gibt Elemente an, auf die eine Bezeichnung angewendet wird. tf get readme.txt;LJulyHotFix

tf get /version:LLastKnownGood
Das erste Beispiel ruft die Version von readme.txt ab, die mit der Bezeichnung "JulyHotFix" gekennzeichnet wurde. Die zweite ruft die Version aller bezeichneten Elemente (und löscht diese Elemente nicht beschriftet) im Arbeitsbereich, da sie vorhanden waren, als das Changeset mit der Bezeichnung LastKnownGood erstellt wurde. Sie können den Code im zweiten Beispiel als Teil eines automatisierten Buildprozesses verwenden.
Datum und Uhrzeit D<yyyy-mm-ddTxx:xx>

oder

D<mm/dd/yyyy>

oder

Jedes .NET Framework-unterstützte Format.

oder

Jedes der Datumsformate, die auf dem lokalen Computer unterstützt werden.
Gibt ein Changeset an, das zu einem bestimmten Zeitpunkt an einem bestimmten Datum erstellt wurde. tf get /version:D2022-03-22

tf get /version:D2022-03-22T09:00
Im ersten Beispiel wird der Arbeitsbereich so aktualisiert, dass er der Codebasis entspricht, wie er am 22. März 2022 um Mitternacht vorhanden ist. Die zweite aktualisiert den Arbeitsbereich so, dass er der Codebasis entspricht, wie er am 22. März 2022 um 9:00 Uhr vorhanden ist. Weitere Informationen zu .NET Framework-unterstützten Datums- und Uhrzeitformaten finden Sie unter DateTime- und Standard-Datums- und Uhrzeitformatzeichenfolgen.
Aktueller Arbeitsbereich W Gibt die Version in Ihrem Arbeitsbereich an. - -
Angegebener Arbeitsbereich W<workspace-name>; <workspace-owner> Gibt die Version in einem angegebenen Arbeitsbereich an. tf get /version:WResolveRIConflicts;PatW Im Beispiel wird die Version im Arbeitsbereich angegeben, ResolveRIConflicts der PatW besitzer ist.
Tipp T Gibt die neueste Version an. - -

Verwenden von Optionen zum Ändern der Funktionsweise eines Befehls

Sie können einige allgemeine Optionen verwenden, um zu ändern, wie ein Befehl funktioniert.

/noprompt Verwenden Der Option zum Unterdrücken von Dateneingabeanforderungen und Umleitungsausgabedaten

Verwenden Sie die /noprompt Option, um Anforderungen für die Dateneingabe zu unterdrücken und Ausgabedaten an das Eingabeaufforderungsfenster umzuleiten. Diese Option kann nützlich sein, wenn Sie Versionssteuerungsbefehle in einem Skript verwenden müssen, in dem:

  • Der Befehl wird ohne Eingreifen eines Benutzers fortgesetzt.
  • Die Daten sind für das Skript verfügbar, um Vorgänge auszuführen, z. B. analysieren oder erfassen.

Wenn Sie diese Option verwenden, gilt folgendes System:

  • Unterdrückt alle Anforderungen für Eingaben:

    • Fragen werden nicht im Eingabeaufforderungsfenster gestellt. Wenn Sie z. B. den Befehl "Rückgängig " mit dieser Option verwenden, werden Sie vom System nicht aufgefordert, zu bestätigen, ob Sie die Änderungen rückgängig machen möchten.
    • Windows- und Dialogfelder werden nicht angezeigt. Sie können diese Option beispielsweise mit dem Befehl "Einchecken" verwenden. Das System zeigt das Dialogfeld " Einchecken " nicht an, in dem Sie Elemente und zugehörige Arbeitsaufgaben bestätigen können. Stattdessen überprüft das System die Elemente ohne Bestätigung.
  • Leitet Ausgabedaten an die Eingabeaufforderung um. Sie können diese Option beispielsweise mit dem Befehl "Verlauf" verwenden. Die Daten werden im Eingabeaufforderungsfenster anstelle des Verlaufsfensters angezeigt.

Verwenden der Option zum Angeben von /login Anmeldeinformationen

Verwenden Sie die /login Option, um das Azure DevOps-Serverbenutzerkonto anzugeben, in dem ein Befehl ausgeführt werden soll. Diese Option kann nützlich sein, wenn Sie auf dem Computer eines anderen Teammitglieds arbeiten.

Angenommen, Sie arbeiten auf dem Entwicklungscomputer Ihres Teammitglieds. Sie verwenden den Befehl "Sperren" , um eine Datei zu entsperren, die Sie zuvor gesperrt haben:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>,<password>

Wenn Sie vermeiden möchten, dass Ihr Kennwort in der Eingabeaufforderung angezeigt wird, können Sie den Befehl ohne das Kennwort eingeben:

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

Nachdem Sie diesen Befehl eingegeben haben, werden Sie vom System aufgefordert, Ihr Kennwort in ein Dialogfeld einzugeben, in dem Ihre Eingabe maskiert wird.

Verwenden der /lock Option zum Anwenden oder Entfernen einer Sperre

Von Bedeutung

Verwenden Sie als bewährte Methode die /lock Option nach Ermessen. Informieren Sie Ihre Teamkollegen darüber, warum Sie ein Element sperren und wann Sie die Sperre entfernen möchten.

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

/lock:(none|checkin|checkout)

Der /lock Befehl verwendet die folgenden Optionen:

  • None: Es wird keine Sperre für ein Element platziert. Wenn eine Sperre bereits vorhanden ist, wird sie entfernt.

  • Checkin oder Checkout: Es wird eine Sperre angewendet. Weitere Informationen finden Sie unter "Grundlegendes zu Sperrtypen".

Hinweis

In einigen Fällen kann der Sperrvorgang fehlschlagen:

  • Wenn andere Benutzer eines der angegebenen Elemente gesperrt haben, schlägt der Sperrvorgang fehl.
  • Wenn bereits eine ausstehende Änderung an dem angegebenen Element vorhanden ist, ignoriert das System diese Option. In diesem Fall müssen Sie den Befehl "Sperren " verwenden, um eine Sperre für ein Element zu ändern.

Verwenden von Optionsverknüpfungen

Sie können die folgenden Optionen kürzen.

Auswahl

Optionsalias

/comment

-C

/computer

-M

/delete

-D

/force

-P

/format

-F

/help

-?, -H

/lock

-K

/login

-Y

/newname

-N

/noprompt

-I

/owner

-O

/recursive

-R

/server

-S

/slotmode

-X

/template

-T

/user

-U

/version

-V

/workspace

-W

Grundlegendes zu Exitcodes

Versionssteuerungsbefehle geben die folgenden Beendigungscodes zurück:

Exit Code

Definition

0

Erfolg.

1

Teilerfolg. Mindestens etwas oder möglicherweise alles konnte nicht erfolgreich sein.

2

Unbekannter Befehl.

100

Nichts war erfolgreich.

Angenommen, Sie führen den folgenden Befehl aus:

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

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