Branch
En egen utvecklingslinje i ett repository, där man kan göra ändringar utan att påverka huvudversionen.
- Kallas även
- gren, utvecklingsgren
- Kategori
- Git
Branch, gren, utvecklingsgren, grenar
Enkel förklaring
En branch, på svenska gren, är som att ta ett sidospår. Du kan prova en ny idé, skriva en ny lektion eller rätta ett fel på din egen gren, medan huvudversionen fortsätter att fungera som vanligt.
När ändringarna är klara och granskade förs de in i huvudversionen. Det kallas merge. Blev idén inte bra kan grenen bara tas bort.
Huvudversionen är också en gren. Den heter oftast main.
Teknisk förklaring
En branch i Git är en flyttbar pekare på en commit. När man gör en ny commit på grenen flyttas pekaren fram till den nya commiten. Att skapa en gren går därför snabbt och tar nästan ingen plats: ingenting kopieras.
Flera grenar kan utgå från samma commit och sedan utvecklas åt olika håll. Man växlar mellan grenar med
git switch, och filerna i arbetskatalogen ändras då till grenens version.
Praktiskt exempel
$ git switch -c ny-lektionSwitched to a new branch 'ny-lektion'I Kodkollektivet Academy görs varje ändring på en egen gren. Grenen granskas i en
pull request innan den förs in i main. Ingen kan skriva direkt till main,
eftersom den är skyddad.
När och varför används det?
Grenar används för att hålla isär arbete som pågår samtidigt. Två personer kan arbeta på var sin gren utan att störa varandra. Huvudgrenen kan hållas i ett läge som alltid fungerar, eftersom bara granskade ändringar förs in där.
Rekommendation:
- En gren per uppgift, med ett namn som säger vad den gäller, till exempel
rätta-stavning-modul-3. - Håll grenarna kortlivade. Ju längre en gren lever, desto större blir risken för konflikter när den ska föras ihop.
Vanliga missförstånd
- “En gren är en kopia av alla filer.” Nej. En gren är bara en pekare på en commit. Filerna kopieras inte.
- “Tar man bort en gren försvinner arbetet.” Inte om grenen redan har förts in med merge. Då finns alla commits kvar i huvudgrenens historik.
- “
mainär något annat än en gren.” Nej.mainär en vanlig gren, som man har kommit överens om ska vara huvudversionen.
Relaterade begrepp
I kurserna
Förekommer i
- Det versionshantering löser
- Modul 2: Installation och grundkonfiguration
- Installera Git
- Namn, e-post och inställningar
- Ditt första repository
- Spara en version: git commit
- Historiken och skillnaderna: git log och git diff
- Övning: resplanen med Git
- Kunskapstest för modul 3
- Modul 4: Branches och parallell utveckling
- Vad är en branch?
- Skapa och växla: git branch och git switch
- Slå ihop: git merge
- Merge-konflikter
- En enkel branch-strategi
- Övning: två idéer samtidigt
- Kunskapstest för modul 4
- Skicka till GitHub: git push och git clone
- Övning: resplanen på två datorer
- Att samarbeta på GitHub
- Pull requests
- Skyddade grenar
- Modul 8: SlutprojektUnder uppbyggnad