Git — Branches & 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.
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.
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.
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 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:
<<<<, ====, >>>>)git add . og git 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.
Standard workflow i GF2 og erhverv:
mainmain (lokalt eller via Pull Request på GitHub)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.
Branches gør det muligt at arbejde parallelt uden at overskrive hinanden:
feature/joblistefeature/bruger-loginmain, når features er færdigeRegler:
main før du opretter ny branchmain stadig kørerDette workflow er identisk med det, I møder i praktik og job.
Test din viden
Spørgsmål 1 af 7
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.
Test din viden
Spørgsmål 2 af 7
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.
Test din viden
Spørgsmål 3 af 7
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.
Test din viden
Spørgsmål 4 af 7
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.
Test din viden
Spørgsmål 5 af 7
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.
Test din viden
Spørgsmål 6 af 7
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.
Test din viden
Spørgsmål 7 af 7
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.