Använda Team Foundation-versionskontrollkommandon

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

Visual Studio 2019 | Visual Studio 2022

Du kan använda kommandon för versionskontroll för att utföra nästan alla TFVC-uppgifter (Team Foundation Version Control) som du kan göra i Visual Studio. Du kan också använda versionskontrollkommandon för att utföra flera uppgifter som inte kan utföras i Visual Studio. Om du vill köra versionskontrollkommandon från en kommandotolk eller i ett skript använder tf.exe du verktyget.

Köra ett kommando

Om du vill starta Visual Studio-kommandotolken från Windows Start väljer du kommandotolken För utvecklare för VS2022 eller tidigare version.

Kommentar

För Visual Studio 2019 och senare versioner tf.exe finns binärfilen inte längre på en fast plats i Visual Studio-installationssökvägen som i vissa tidigare versioner, C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDEtill exempel . Om skriptet använder tf.exeska du inte hårdkoda en sökväg till filen baserat på Visual Studio-installationssökvägen.

I de flesta fall kör du kommandot versionskontroll i kontexten för en katalog som mappas på arbetsytan. Till exempel $/SiteApp/Main/ mappas till c:\\code\\SiteApp\\Main\\. Använd följande kommando för att hämta den senaste versionen av alla objekt på arbetsytan:

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

Konfigurera utvecklingsdatorn och hantera arbetsytor

Din arbetsyta är en lokal kopia av teamets kodbas. Eftersom det är en lokal kopia på utvecklingsdatorn kan du utveckla och testa koden isolerat tills du är redo att checka in ditt arbete. Här följer några kommandon för att hantera din arbetsyta:

Mer information finns i följande resurser:

Utveckla din app

Använd dessa kommandon för att utveckla din app under versionskontroll med ditt team:

Mer information finns i Utveckla din app i Team Foundation-versionskontroll.

Pausa ditt arbete

Av olika skäl måste du ibland avsätta en del av eller hela ditt pågående arbete. Om du vill pausa och återuppta arbetet och hantera dina hyllor använder du följande kommandon:

Mer information finns i Pausa ditt arbete och hantera dina hyllor.

Bidra med ditt arbete

checkin Använd kommandot för att checka in koden till teamets kodbas:

  • Checkin-kommando: Kontrollerar väntande ändringar av filer eller mappar på servern.

Mer information finns i Checka in ditt arbete till teamets kodbas.

Hantera filer och lösa problem

Använd resurserna i följande avsnitt för att hantera filer.

Visa och hantera versionskontrollfiler och mappar

Mer information finns i Använda Source Control Explorer för att hantera filer under versionskontroll.

Visa och hantera tidigare versioner

Mer information finns i Visa och hantera tidigare versioner.

Jämför mappar och filer

Mer information finns i Visa och hantera tidigare versioner.

Lösa filkonflikter

  • Lös kommando: Löser konflikter mellan objekt på din arbetsyta och på servern.

Mer information finns i Lösa konflikter med Team Foundation-versionskontroll.

Arbeta med versionskontrolllås

Mer information finns i Arbeta med versionskontrolllås.

Isolera risker

Använd följande kommandon för att isolera risker med hjälp av grenar:

Mer information finns i Använda grenar för att isolera risker i Team Foundation Version Control.

Administrera versionskontroll

Använd följande kommandon för att hantera versionskontrollsystemet:

Mer information finns i Konfigurera utcheckningsinställningar.

Få hjälp med versionskontrollkommandon

Använd följande kommandon för att få detaljerad information om kommandon för versionskontroll:

Förstå kommandosyntax

Syntaxen för varje kommando visas överst i varje referensartikel.

Obligatoriska och valfria argument

Argument som inte är hakparenteser krävs. [Hakparenteser] ange valfria argument som inte krävs för att slutföra ett kommando. Vissa valfria argument har dock standardvärden som tillämpas på kommandot även om du inte anger alternativet.

Exklusiva argument

När alternativen avgränsas med ett rör (|) kan du ange något av alternativen.

Ordagranna och utbytbara argument

Objekt som inte omges av hakparenteser är alternativ som du inkluderar ordagranna. Objekt som omges av vinkelparenteser (< och >) är argument som du måste ersätta med faktiska tecken för att utföra ett kommando.

Kommandogenvägar och alias

Vissa kommandon stöder genvägar. Du kan till exempel anropa kommandot Ta bort med antingen tf delete eller tf del.

Exempel

Tänk till exempel på kommandot Checkout:

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

Det här exemplet innehåller följande argument:

  • <item-spec>: Du måste ersätta det här argumentet med en objektspecifikation som identifierar de objekt som du checkar ut.
  • Följande argument är valfria. Om du inte anger dem gäller ingen av deras effekter för kommandot:
    • /lock:(none|checkin|checkout): Om du inte anger alternativet /lock används /lock:none systemet som standard. Annars kan du ange något av de andra låsalternativen.
    • /recursive: Om du vill rekursivt checka ut flera objekt i en mapp måste du ange det här alternativet ordagrant.
    • /login:<username>, <password>: Om du vill köra kommandot som en annan användare måste du ange /login alternativet ordagrant och ersätta <username> med namnet på användaren. Ersätt vid behov <password> med användarens lösenord.

Ange de objekt som påverkas av ett kommando

Du kan använda objektspecifikationer och versionsspecifikationer för att ange vilka objekt som påverkas av ett kommando.

Använd ett objektspecifikationsargument för att ange berörda objekt

Du använder en objektspecifikation för att ange de objekt som påverkas av ett kommando. Du kan ange objekt antingen på en klientdator eller på din Azure DevOps-server. Du kan använda jokertecken som * och ?.

Argument för specifikation av klientobjekt

Ett argument för specifikation av klientobjekt anger en sökväg till objekt på en klientdator, till exempel:

  • En mapp, till exempel c:\code\SiteApp\Main\SolutionA\.
  • En fil, till exempel c:\code\SiteApp\Main\SolutionA\Project1\program.cs.
  • Flera filer, till exempel c:\code\SiteApp\Main\SolutionA\*.cs.
  • En UNC-sökväg (Universal Naming Convention), till exempel \\myshare\code\SiteApp\Main.

Argument för specifikation av serverobjekt

Ett argument för specifikation av serverobjekt anger en sökväg till objekt på din Azure DevOps-server, till exempel:

  • En mapp, till exempel $/SiteApp/Main/SolutionA.
  • En fil, till exempel $/SiteApp/Main/SolutionA/Project1/program.cs.
  • Flera filer, till exempel $/SiteApp/Main/SolutionA/*.cs.

Du använder vanligtvis specifikationsargument för serverobjekt när du behöver köra ett kommando på objekt som inte finns på klientdatorn. Anta till exempel att du arbetar på en utvecklingsdator. Om du behöver hämta revisionshistorikdata om vissa objekt som finns i en projektsamling som du inte arbetar i kan du använda följande kommando:

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

Argument för flera objektspecifikationer

För vissa kommandon kan du ange flera objektspecifikationsargument, till exempel:

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

Det här kommandot checkar ut program.cs och program2.c.

Använd ett versionsspecifikationsargument för att ange berörda versioner av objekt

Du använder en versionsspecifikation för att ange vilken version av objekt som påverkas av ett kommando. Om du vill ange en versionsspecifikation kan du:

  • Använd alternativet /version , till exempel /version:C44.

  • Lägg till versionsspecifikationen i en objektspecifikation med semikolon, program1.cs;C44till exempel .

När du använder kommandot Historik eller kommandot Skillnad kan du ange ett intervall med versioner genom att separera versionerna med en tilde, till exempel:

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

Använd följande syntax för att ange en versionsspecifikation:

Type Syntax beskrivning Exempel Result
Changeset [C]<version-number> Anger objekt baserat på ett ändringsuppsättningsnummer. Om ett objekt som finns i omfånget inte har ändrats i den angivna ändringsuppsättningen, tar systemet den senaste versionen av objektet som inträffade före den angivna ändringsuppsättningen. Du kan utelämna C om du bara anger ett tal. tf get readme.txt /v:C8

tf get readme.txt /v:8

tf get readme.txt;8
Om readme.txt ändrades i ändringsuppsättning 8 hämtar exempelkoden den versionen av filen. Annars hämtar den senaste versionen av readme.txt före version 8.
Etikett L<label> Anger objekt som en etikett tillämpas på. tf get readme.txt;LJulyHotFix

tf get /version:LLastKnownGood
Det första exemplet hämtar den version av readme.txt som har etiketten JulyHotFix. Den andra hämtar versionen av alla märkta objekt (och tar bort de objekt som inte är märkta) på arbetsytan som de fanns när ändringsuppsättningen med etiketten LastKnownGood skapades. Du kan använda koden i det andra exemplet som en del av en automatiserad byggprocess.
Datum och tid D<yyyy-mm-ddTxx:xx>

eller

D<mm/dd/yyyy>

eller

Alla format som stöds av .NET Framework.

eller

Något av de datumformat som stöds på den lokala datorn.
Anger en ändringsuppsättning som skapades vid ett angivet datum vid en viss tidpunkt. tf get /version:D2022-03-22

tf get /version:D2022-03-22T09:00
Det första exemplet uppdaterar arbetsytan så att den matchar kodbasen som den fanns den 22 mars 2022 vid midnatt. Den andra uppdaterar arbetsytan så att den matchar kodbasen som den fanns den 22 mars 2022 kl. 09:00. Mer information om datum- och tidsformat som stöds av .NET Framework finns i datum- och tidsformatsträngar för DateTime och Standard.
Aktuell arbetsyta W Anger versionen på arbetsytan. - -
Angiven arbetsyta W<workspace-name>; <workspace-owner> Anger versionen på en angiven arbetsyta. tf get /version:WResolveRIConflicts;PatW Exemplet anger versionen på den ResolveRIConflicts arbetsyta som PatW äger.
Dricks T Anger den senaste versionen. - -

Använd alternativ för att ändra hur ett kommando fungerar

Du kan använda några vanliga alternativ för att ändra hur ett kommando fungerar.

Använd alternativet /noprompt för att förhindra begäranden om dataindata och omdirigera utdata

Använd alternativet /noprompt för att utelämna begäranden om indata och omdirigera utdata till kommandotolken. Det här alternativet kan vara användbart när du behöver använda versionskontrollkommandon i ett skript där:

  • Kommandot fortsätter utan åtgärder från en användare.
  • Data är tillgängliga för skriptet att utföra åtgärder på, till exempel parsning eller insamling.

När du använder det här alternativet:

  • Undertrycker alla begäranden om indata:

    • Frågor ställs inte i kommandotolkens fönster. När du till exempel använder kommandot Ångra med det här alternativet uppmanas du inte att bekräfta om du vill ångra ändringarna.
    • Windows och dialogrutor visas inte. Du kan till exempel använda det här alternativet med kommandot Checkin. Systemet visar inte dialogrutan Incheckning där du kan bekräfta objekt och tillhörande arbetsobjekt. I stället checkar systemet in objekten utan bekräftelse.
  • Omdirigerar utdata till kommandotolken. Du kan till exempel använda det här alternativet med kommandot Historik. Data visas i kommandotolken i stället för fönstret Historik.

Använd alternativet /login för att ange autentiseringsuppgifter

Använd alternativet /login för att ange det Azure DevOps-serveranvändarkonto som du vill köra ett kommando i. Det här alternativet kan vara användbart när du arbetar på en annan gruppmedlems dator.

Anta till exempel att du arbetar på din gruppmedlems utvecklingsdator. Du använder kommandot Lås för att låsa upp en fil som du låste tidigare:

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

Om du vill undvika att lösenordet visas i kommandotolken kan du ange kommandot utan lösenordet:

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

När du har angett det här kommandot uppmanas du att ange lösenordet i en dialogruta som maskerar dina indata.

Använd alternativet /lock för att tillämpa eller ta bort ett lås

Viktigt!

Vi rekommenderar att du använder alternativet /lock efter eget gottfinnande. Informera dina teammedlemmar om varför du låser ett objekt och när du planerar att ta bort låset.

Använd alternativet /lock för att tillämpa eller ta bort ett lås samtidigt som du kör ett annat kommando, till exempel Lägg till eller Redigera.

/lock:(none|checkin|checkout)

Kommandot /lock använder följande alternativ:

  • None: Inget lås har placerats på ett objekt. Om ett lås redan är på plats tas det bort.

  • Checkin eller Checkout: Ett lås tillämpas. Mer information finns i Förstå låstyper.

Kommentar

I några fall kan låsåtgärden misslyckas:

  • Om andra användare har låst något av de angivna objekten misslyckas låsåtgärden.
  • Om det redan finns en väntande ändring av det angivna objektet ignorerar systemet den här växeln. I det här fallet måste du använda kommandot Lås för att ändra ett lås på ett objekt.

Använda alternativgenvägar

Du kan förkorta följande alternativ.

Alternativ

Alternativalias

/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

Förstå utgångskoder

Versionskontrollkommandon returnerar följande slutkoder:

Avsluta kod

Definition

0

Lyckades.

1

Delvis lyckad. Åtminstone något, eller möjligen allt, misslyckades att lyckas.

2

Okänt kommando.

100

Inget lyckades.

Anta till exempel att du kör följande kommando:

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

Om en av filerna som du försöker checka ut inte finns på servern, returnerar kommandot 1 för att indikera partiell framgång.