Git — Branches & Merge
Præsenter som slidesBranches og merge
En branch er en parallel version af din kode. Du arbejder på nye features i separate branches, så main altid forbliver stabil — især vigtigt i studiegrupper.
Hvad er en branch?
Forestil dig en tidslinje af commits. main er hovedtidslinjen — den version, der "tæller". En branch er en forgrening, hvor du kan eksperimentere uden at påvirke main:
main: A --- B --- C --- F (merge)
\
feature: D --- E
Commit D og E lever på feature-branchen. Når featuren er færdig, merges den tilbage til main som commit F.
En branch er en parallel version af koden. Merge samler ændringerne tilbage i main.
Oprette og skifte branch
git checkout -b feature/jobliste # opret og skift til ny branch
# ... lav ændringer ...
git add .
git commit -m "feat: tilfoej jobliste"
git checkout main # skift tilbage til main
git merge feature/jobliste # merge feature ind i main
I GitHub Desktop: Branch → New branch, lav ændringer, commit, skift til main, klik Merge into current branch.
Branch-navne bør beskrive featuren: feature/login, fix/input-validering, docs/readme.
Merge og merge-konflikter
Merge kombinerer to branches. Git forsøger automatisk at flette ændringer — men hvis samme linje er ændret i begge branches, opstår en merge-konflikt:
<<<<<<< HEAD
Console.WriteLine("Hej main");
=======
Console.WriteLine("Hej feature");
>>>>>>> feature/jobliste
Løsning:
- Åbn filen og vælg den rigtige kode (eller kombiner begge)
- Fjern konflikt-markørerne (
<<<<,====,>>>>) git add .oggit commit -m "merge: loes konflikt i Program.cs"
Konflikter er normale i teams — de betyder bare, at Git ikke kan gætte, hvad du vil beholde.
Feature branch workflow
Standard workflow i GF2 og erhverv:
- Opret branch fra opdateret
main - Arbejd på featuren — commit ofte
- Push branchen til GitHub
- Merge til
main(lokalt eller via Pull Request på GitHub) - Slet feature-branchen når den er merged
git checkout main
git pull # hent seneste fra GitHub
git checkout -b feature/ny-funktion
# ... arbejde og commits ...
git push -u origin feature/ny-funktion
git checkout main
git merge feature/ny-funktion
git push
-u origin linker din lokale branch til GitHub — derefter kan du bare git push.
Samarbejde i studiegrupper
Branches gør det muligt at arbejde parallelt uden at overskrive hinanden:
- Person A arbejder på
feature/jobliste - Person B arbejder på
feature/bruger-login - Begge merger til
main, når features er færdige
Regler:
- Pull altid seneste
mainfør du opretter ny branch - Kommuniker hvem der arbejder på hvad
- Løs konflikter sammen — det er en læringsmulighed
- Test efter merge — sørg for at
mainstadig kører
Dette workflow er identisk med det, I møder i praktik og job.
Test din viden
Spørgsmål 1
Hvad er en branch i Git?
En branch lader dig arbejde på fx en feature uden at påvirke main. Når arbejdet er færdigt, merges det tilbage.
Spørgsmål 2
Hvad gør git checkout -b feature/navn?
-b opretter branchen; checkout skifter til den. Derefter committer du på feature-branchen, ikke på main.
Spørgsmål 3
Hvad er en merge-konflikt?
Konflikter vises med markører som <<<<<<< HEAD. Du løser manuelt — vælg eller kombiner koden, fjern markørerne, git add og commit.
Spørgsmål 4
Hvad er main i feature branch workflow?
main er standard-hovedbranchen. Features udvikles på separate branches og merges til main, når de er testet og færdige.
Spørgsmål 5
Hvorfor bør du git pull på main før du opretter en ny branch?
git pull synkroniserer med GitHub. Uden det kan din branch bygge på forældet main og give unødvendige konflikter ved merge.
Spørgsmål 6
Hvad gør git merge feature/jobliste når du står på main?
Merge kombinerer to branches. Du skal typisk stå på main (mål-branchen) og merge feature ind i den.
Spørgsmål 7
Hvad betyder -u origin ved git push -u origin feature/ny-funktion?
Upstream (-u) husker forbindelsen mellem lokal branch og remote. Efter første push med -u er git push nok til at sende nye commits.