Dela via


Förstå hur Team Foundation Version Control-kommandon (TFVC) fungerar jämfört med kommandon i Git-arbetsflöden

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

Visual Studio 2019 | Visual Studio 2022

Planerar du att anta Git, är bekant med TFVC-åtgärder och undrar hur de mappar till Git? Båda är kraftfulla och mogna källkontrollsystem. Att mappa vanliga åtgärder som du har vant dig vid i det ena till det andra kan dock vara en förvirrande upplevelse.

Den här artikeln fördjupar sig inte utförligt i Git-kommandona, eftersom de är väl dokumenterade i produktdokumentationen, men visar exempel som hjälper dig att fatta rätt beslut när du går igenom ett typiskt arbetsflöde för att skapa –> klona –> branch –> ändra –> committa –> pusha.

Börja i början genom att skapa en ny lagringsplats

Varje projekt kan vara värd för TFVC- och Git-lagringsplatser i samma projekt och skapa en TFVC och en eller flera Git-lagringsplatser.

Skapa en ny Git-lagringsplats i Azure Repos

När lagringsplatsen har skapats visas stegvisa instruktioner för att snabbt komma igång.

Kom igång med en ny Git-lagringsplats i Azure Repos

Klicka på Skapa en ReadMe-fil i slutet av instruktionssidan för att ge lagringsplatsen kontext och skapa lite historik.

Skapa en README för att initiera en ny Git-lagringsplats i Azure Repos

Skapa en arbetsyta och hämta den senaste versionen

När du ansluter till en TFVC-lagringsplats för första gången skapar du vanligtvis en arbetsyta och hämtar den senaste koden. så, hur kommer du igång i Git?

På samma sätt som en arbetsyta i TFVC använder du clone Git-lagringsplatsen till en mapp på datorn. Kloning laddar ned allt innehåll och historik för lagringsplatsen till din lokala dator. När du har den klonade lagringsplatsen utförs nästan alla åtgärder lokalt. Du kan arbeta offline med en fullständig säkerhetskopia av den centraliserade lagringsplatsen.

git clone https://dev.azure.com/demo-fabrikam/Fabrikam/_git/Mapping-TFVC-actions-to-Git

Du behöver bara klona en gång per lagringsplats, men precis som TFVC-arbetsytor kan du ha flera kloner för att isolera pågående arbete. Förgrening är dock vanligtvis ett bättre sätt att isolera ändringar.

Skapa en gren

Med Git arbetar du alltid i en gren och som standard i grenenmain . Vi rekommenderar att du skapar flera lokala grenar. Det är en process som tar sekunder och gör att du smidigt kan växla mellan kontexter, byta mellan olika grenar och arbeta i isolering. Till skillnad från TFVC-grenar, som är begränsade till sökvägar, är Git-grenar lagringsplatssomfång. De är lätta, kan endast vara lokala eller delas med andra när du är redo att dela dina ändringar.

Överväg att skapa en gren om du behöver arbeta isolerat, behöver pausa ditt arbete, fokusera på nya funktioner eller om du planerar att göra en pull request.

Som TFVC-användare, upprepa några gånger:

  • Förgrening rekommenderas!
  • Git-förgrening är billigt, snabbt och kraftfullt!
  • Git uppmuntrar dig att använda lokala grenar.
  • Publicera lokala grenar till er centraliserade databas efter behov.
  • Verifiera alltid din grenkontext innan du gör ändringar.
  • Ge grenen ett namn med hjälp av en gemensam konvention, till exempel användare/alias/branchnamn: användare/doris/newfeature

Skapa och växla till en lokal ämnesgren med namnet francis/demo-feature. Det är bra att köra en git status först, för att kontrollera att du är på rätt gren.

git checkout -b francis/demo-feature

Skapa en ny Git-gren från Windows-kommandoraden

Gör en ändring genom att lägga till filer

På samma sätt som TFVC-upplevelsen är nya filer i arbetsmappen inte automatiskt en del av lagringsplatsen. Du lägger till dina nya filer i staging med git add-kommandot, vilket är synonymt med att utföra en add Items to Folder-åtgärd i TFVC.

git add <file>

eller

git add --all

Med det färdiga exemplet har du 13 nya filer som har inkluderats och mellanlagrats på den lokala lagringsplatsen.

Visa väntande ändringar

Undrar du vilka ändringar som nu finns i din arbetsmiljö? Precis som tidigare visar Git-kommandot status eller Changes vyn i Visual Studio IDE ändringar i ditt arbetsträd.

git status

Använda Git-status för att visa mellanlagrade ändringar

Checka in ändringar och committa lokalt

I TFVC skickar du dina väntande ändringar till servern genom att göra en incheckning. Git-processen är lite annorlunda. Först committrar du till det lokala lagringsutrymmet, skapar ett commit-objekt (som en ändringsuppsättning) och skickar sedan ändringarna till servern.

Du begår ändringarna i din lokala lagringsplats med hjälp av git commit, liknande en Checkin Pending Changes i TFVC. En viktig skillnad är att git commit överför dina ändringar till den lokala lagringsplatsen istället för fjärrlagringsplatsen.

git commit

Kontrollera ändringar med servern/fjärrdatabasen

Först måste du publicera din lokala francis/demo-funktionsgren till fjärrservern, som innehåller alla incheckade ändringar.

git push --set-upstream origin francis/demo-feature

Om du vill synkronisera ytterligare uppdateringar lokalt med fjärrlagringsplatsen måste du skicka ändringarna med hjälp av git push. Den rekommenderade metoden med git-kommandot eller Visual Studio IDE är att:

  • fetch för att ladda ned innehåll och förhandsgranska inkommande ändringar från andra.
  • pull för att ladda ned och sedan sammanfoga ändringar från andra.
  • push för att dela dina lokala ändringar.

Visa historik

För att se den commit du just skapade kan du granska den lokala historiken.

För en kompakt historik använder du:

git log --oneline

Om du vill ha en detaljerad vy använder du:

git log

Använda Git-loggen för att granska grenhistorik

Som du ser ovan git log visar en lista över författare, e-post, datum som skrivits och checksumman commit SHA-1. Som TFVC-användare kanske du vill använda --stat alternativet för att inkludera mer information, till exempel filnamn och ändringsstatistik.

Du kan också visa historiken för den centraliserade lagringsplatsen med hjälp av Azure DevOps Services-webbportalen.

I Azure DevOps Services-webbportalen väljer du KOD > Historik eller KOD > Utforskare > Historik

Visa grenhistorik i Azure Repos

Nu har du framgångsrikt utforskat arbetsflödet skapa –> klona –> gren –> ändra –> checka in –> pusha, baserat på vanliga TFVC-åtgärder.

Du har också möjlighet att utfärda en pull-begäran för att publicera och mellanlagra ändringarna på servern/fjärrlagringsplatsen just nu.

Andra åtgärder

Växla grenar

När du arbetar med Git ändrar du inte grenar genom att växla till separata mappar och platser på datorn. Du ändrar kontexten genom att göra en checkout, vilket får hela arbetskatalogen att matcha den valda grenen eller commiten. Snabbt och enkelt!

Kommandorad

git checkout <branch>

Om du har glömt vilka grenar du har på din lokala lagringsplats använder git branch du för att visa standardgrenarna och de kända grenarna.

Tänk på vilken gren du arbetar med! När du arbetar med flera brancher i Git växlar du brancher på plats i samma arbetsmapp. Att växla mellan grenar är en snabb åtgärd, och det är bra att se till att du är på rätt gren hela tiden.

Hämta den senaste versionen

Det finns många anledningar till att vilja få uppdateringar. När du till exempel behöver växla kontext till ett annat projekt uppdaterar du utvecklingsdatorn med den senaste versionen av kodbasen.

Kommandorad

git pull

eller

git fetch

följt av

git merge FETCH_HEAD

Hämta alltid den senaste versionen och lös sammanslagningskonflikter lokalt.

Ångra lokala ändringar

Det kan finnas en giltig anledning att återställa alla revisioner som du har gjort på den lokala lagringsplatsen och återställa din arbetsmiljö till den senaste versionen från fjärrlagringsplatsen.

Kommandorad

git reset --hard HEAD

följt av

git pull origin

följt av

git clean -xdf

Scenariot är synonymt med att göra en Get > Latest Version med alternativen Overwrite writable files that are not checked out och Overwrite all files if the local version matches the specified version i TFVC.

Du kan också ta bort ditt lokala repo manuellt – efter att ha gjort en verifierad kopia, såklart – och sedan clone lagringsplatsen igen.

Det finns många fler åtgärder och alternativ tillgängliga för Git-användare. Här är några användbara referenswebbplatser för vidare läsning:

Frågor och svar

Vad händer med synkronisering?

"Gör Visual Studio IDE Commit and Sync inte magiskt allt detta?", kanske du frågar dig själv.

Välj Git>Commit eller Stash för att öppna Git-ändringar. Välj listrutan Checka in alla och välj sedan Checka in alla och Synkronisera.

Eller i Team Explorer väljer du den nedrullningsbara menyn Checka in och sedan Kommando och Synkronisera.

Checka in och synkronisera i Team Explorer

Med magi kommer ansvar! Många användare ogillar sync eftersom det ibland kan förstöra din lokala historik och lägga till ett sammanslagningscommit ovanpå ditt aktuella commit. När du är i ett felaktigt tillstånd måste du återgå till kommandoraden eftersom det för närvarande inte finns något återställningsstöd i IDE.

Författare: Jesse Houwing, Martin Hinshelwood, Mike Fourie och Willy Schaub från ALM | DevOps Rangers. Anslut till dem här.

(c) 2015 Microsoft Corporation. Med ensamrätt. Det här dokumentet tillhandahålls "i den mån det är". Information och vyer som uttrycks i det här dokumentet, inklusive URL och andra webbplatsreferenser, kan ändras utan föregående meddelande. Användande sker på egen risk.

Det här dokumentet ger dig inga juridiska rättigheter till någon immateriell rättighet i någon Microsoft-produkt. Du får kopiera och använda det här dokumentet som referens för interna syften.