Hoppa till innehåll

En enkel branch-strategi

  • Vad en branch-strategi är.
  • Fem enkla regler som räcker långt: main fungerar alltid, en gren per uppgift, korta grenar, tydliga namn och att städa efter sig.
  • Att hitta grenar som kan tas bort, med git branch --merged.

Grenar kan användas hur som helst, och det är just därför det behövs regler. Utan regler blir det snabbt många halvfärdiga grenarBranchEn egen utvecklingslinje i ett repository, där man kan göra ändringar utan att påverka huvudversionen.Läs mer om grenar som ingen minns vad de var till för, och stora konflikter när de till sist ska föras ihop. När flera personer arbetar i samma projekt måste alla dessutom göra på samma sätt. En branch-strategi är de regler ett projekt har kommit överens om.

Det finns stora och avancerade strategier. Den här kursen använder en enkel, som många projekt använder och som räcker för det mesta:

  1. main fungerar alltid. Gör inga ändringar direkt på main. Det som finns där ska gå att använda.
  2. En gren per uppgift. Varje ny dag, rättelse eller idé får en egen gren, som skapas från main.
  3. Korta grenar. För in grenen i main så snart uppgiften är klar, gärna samma dag. Ju längre en gren lever, desto mer hinner main ändras, och desto större blir risken för konflikter.
  4. Tydliga namn. Namnet säger vad grenen är till för.
  5. Städa efter dig. Ta bort grenen när den är införd.
Mindre bra Bättre
test dag-5-umea
kims-gren ratta-stavning-vasteras
ny packlista-vinter
fix2 ta-bort-dag-3

Använd små bokstäver och bindestreck i stället för mellanslag. Mellanslag är inte tillåtna i namn på grenar. Undvik å, ä och ö: de fungerar i Git, men inte alltid i andra verktyg.

git branch --merged visar de grenar som redan är helt införda i den gren du står på. De kan tas bort utan att något försvinner:

Terminal
$ git branch --merged
dag-5-umea
* main

Här är dag-5-umea införd i main och kan tas bort med git branch -d dag-5-umea.

Så här ser en uppgift ut från början till slut, med reglerna ovan:

Terminal
git switch main
git switch -c dag-5-umea
# ändra resplan.txt
git add resplan.txt
git commit -m "Lägg till dag 5: Umeå"
git switch main
git merge dag-5-umea
git branch -d dag-5-umea

Raden som börjar med # är en kommentar. Den är inget kommando, utan bara en påminnelse om att du ändrar filen där.

1. Vilket namn på en gren är bäst?
Visa rätt svar
  • ratta-stavning-vasteras: Namnet säger vad grenen är till för, med små bokstäver och bindestreck.
2. Varför ska grenar vara kortlivade?
Visa rätt svar
  • Ju längre en gren lever, desto mer hinner main ändras och desto större blir risken för konflikter
3. Vad visar git branch --merged?
Visa rätt svar
  • Grenar som redan är helt införda i den gren du står på: De kan tas bort med git branch -d utan att något försvinner.

  • En branch-strategi är de regler ett projekt följer för hur grenar används.
  • main fungerar alltid. Varje uppgift får en egen, kort gren som skapas från main.
  • Ge grenar tydliga namn med små bokstäver och bindestreck.
  • git branch --merged visar grenar som är införda och kan tas bort med git branch -d.
  • I ett samarbete granskas grenen i en pull request innan den förs in. Det kommer i modul 6.