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\IDE
till exempel . Om skriptet använder tf.exe
ska 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:
- Konfigurera Versionskontroll för Team Foundation på utvecklingsdatorn
- Skapa och arbeta med arbetsytor
Utveckla din app
Använd dessa kommandon för att utveckla din app under versionskontroll med ditt team:
- Lägg till kommando: Lägger till filer och mappar i versionskontrollen.
- Kommandot Checka ut (eller Redigera): Checkar ut en fil och ändrar dess väntande ändringsstatus för redigering.
- Ta bort kommando (Versionskontroll för Team Foundation): Tar bort filer och mappar från Azure DevOps-servern och tar bort dem från disken.
- Hämta kommando: Hämtar (laddar ned) den senaste versionen eller en angiven version av en eller flera filer eller mappar från Azure DevOps Server till arbetsytan.
- Byt namn på kommandot (Team Foundation Version Control): Ändrar namn eller sökväg för en fil eller mapp.
- Statuskommando: Visar information om väntande ändringar av filer och mappar i arbetsytor eller i en hyllor.
- Kommandot Ångra: Tar bort angivna väntande ändringar i filer eller mappar.
- Ta bort borttagningskommando: Återställer objekt som tidigare har tagits bort.
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
- Kommandot Egenskaper (eller Info): Visar information om objekt i versionskontrollen.
- Dir-kommando: Visar innehållet i versionskontrollservern.
- Destroy-kommandot (Team Foundation Version Control): Tar bort versionskontrollerade filer permanent.
- LocalVersions-kommando: Visar versionerna av arbetsyteobjekt.
Mer information finns i Använda Source Control Explorer för att hantera filer under versionskontroll.
Visa och hantera tidigare versioner
- Kommandot Changeset: Ändrar eller visar attribut för ändringsuppsättningar.
- Historikkommando: Visar revisionshistoriken för filer eller mappar.
- Etikettkommando (Versionskontroll för Team Foundation): Bifogar eller tar bort etiketter från filer eller mappar.
- Kommandot Etiketter: Visar information om etiketter som används på servern.
- Återställningskommando (Versionskontroll för Team Foundation): Återställer effekterna av ändringsuppsättningar.
- Unlabel-kommando: Tar bort ett objekt från en befintlig etikett på servern.
- Visa kommando: Hämtar en angiven version av en fil och visar den.
Mer information finns i Visa och hantera tidigare versioner.
Jämför mappar och filer
- Differenskommando: Jämför skillnader mellan filer och hyllor.
- Folderdiff-kommando: Jämför skillnader mellan filer i två mappar.
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
- Lås kommando: Låser eller låser upp filer och mappar.
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;C44
till 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
ellerCheckout
: 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.