Skapa och växla: git branch och git switch
Det här lär du dig
Section titled “Det här lär du dig”- Att skapa en ny gren och växla till den med
git switch -c. - Att växla mellan grenar med
git switch. - Att filerna i arbetskatalogen byts ut när du växlar gren.
Varför behövs det här?
Section titled “Varför behövs det här?”En grenBranchEn egen utvecklingslinje i ett repository, där man kan göra ändringar utan att påverka huvudversionen.Läs mer om gren gör nytta först när du arbetar på den. Du skapar en gren för en ny idé, gör dina
commits där och växlar tillbaka till main när du vill se den version som fungerar. Ingenting du gör på
den nya grenen påverkar main.
Så hänger det ihop
Section titled “Så hänger det ihop”git switch -c dag-4 gör två saker på en gång: den skapar grenen dag-4 på den commit du står på, och
växlar till den. -c står för create, skapa. Utan -c växlar git switch till en gren som redan finns.
När du växlar gren gör GitGitEtt program som sparar versioner av filerna i ett projekt, så att man kan se vad som ändrats, gå tillbaka till tidigare versioner och arbeta flera samtidigt.Läs mer om Git om arbetskatalogen så att filerna ser ut som i grenens senaste commitCommitEn sparad version av projektet i Git, med en beskrivning av vad som ändrats, vem som gjorde det och när.Läs mer om commit. Filerna byts ut på plats, i samma mapp. Det finns aldrig två kopior av mappen.
Exempel
Section titled “Exempel”Skapa en gren för en fjärde dag och växla till den:
$ git switch -c dag-4Switched to a new branch 'dag-4'Lägg till raden Dag 4: Sundsvall i resplan.txt och spara den som vanligt:
$ git add resplan.txt$ git commit -m "Lägg till dag 4: Sundsvall"[dag-4 8923e85] Lägg till dag 4: Sundsvall 1 file changed, 1 insertion(+)Git skriver nu dag-4 i stället för main först inom hakparentesen. Commiten hamnade på den nya grenen.
git log --oneline visar var grenarna pekar:
$ git log --oneline8923e85 (HEAD -> dag-4) Lägg till dag 4: Sundsvall7620fac (main) Lägg till dag 3: Gävle226c08c Första versionen av resplanenVäxla tillbaka till main och titta i filen. Dag 4 finns inte där:
$ git switch mainSwitched to branch 'main'$ cat resplan.txtResplan sommaren
Dag 1: StockholmDag 2: UppsalaDag 3: Gävlecat skriver ut innehållet i en fil i terminalen. Den fungerar i PowerShell, på macOS och på Linux. Du kan
också öppna filen i texteditorn. Växlar du tillbaka med git switch dag-4 är dag 4 där igen.
Med --all --graph visar git log alla grenar på en gång, med ett enkelt diagram till vänster:
$ git log --oneline --all --graph* 8923e85 (dag-4) Lägg till dag 4: Sundsvall* 7620fac (HEAD -> main) Lägg till dag 3: Gävle* 226c08c Första versionen av resplanenÖvning
Section titled “Övning”Låt grenen dag-4 vara kvar. Du för in den i main i nästa lektion.
Vanliga problem
Section titled “Vanliga problem”Testa dig själv
Section titled “Testa dig själv”Sammanfattning
Section titled “Sammanfattning”git switch -c <namn>skapar en ny gren där du står och växlar till den.git switch <namn>växlar till en gren som redan finns.- Nya commits hamnar på den gren du står på. De andra grenarna påverkas inte.
- När du växlar gren byter Git ut filerna i arbetskatalogen. Gör en commit innan du växlar.
git log --oneline --all --graphvisar alla grenar och var de pekar.