Branching strategier Flashcards
En hotfix branch
en midlertidig gren i versionsstyring (som Git), der bruges til at implementere hurtige fejlrettelser direkte fra produktion, uden at forstyrre udviklingsgrenen. Efter rettelsen merges den typisk til både main og develop branches.
bruges ved små problemer
Hvad kræver Trunk based development
High Code Quality
High Test Coverage
Feature Flags
Continuous Deployment
(All pushes to main must be reviewed)
hvad kræver Feature branching
Still (several) Daily Commits
Code Quality
Test Coverage
(Feature Flags)
Pull Requests with review
Continuous Deployment
Hvad er en branching-strategi i Git?
en metode til, hvordan et udviklingsteam organiserer og håndterer deres kodeændringer i Git. Den sikrer, at udviklere kan arbejde parallelt uden at overskrive hinandens kode.
Hvad er Git-Flow?
en model med flere branches, introduceret af Vincent Driessen i 2010. Den bruger en master branch, en develop branch, og flere understøttende branches
Hvad er fordelene og ulemperne ved Git-Flow?
✅ Fordele: Struktureret udviklingsproces
Isolerer funktioner og fejlrettelser
❌ Ulemper: Kan være for kompleks til mindre teams
For mange branches → Mere overhead
Kan skabe merge-konflikter, hvis feature branches lever for længe
Hvad er GitHub Flow?
En simplere alternativ til Git-Flow, populær blandt teams, der bruger kontinuerlig levering (CD)
typisk 2 branches man kører
Hvordan fungerer GitHub Flow?
Hovedbranch (main) er altid klar til produktion
Udviklere laver en feature branch
Feature branch merges direkte til main via pull requests
Eventuelle hotfixes løses direkte på main
Hvad er fordelene og ulemperne ved GitHub Flow?
✅ Fordele:
Meget simpelt, ingen unødvendige branches
Passer godt til CI/CD og web-apps
Hurtigere udviklingscyklus
❌ Ulemper:
Ingen stabil udviklingsbranch (develop), så main kan blive ustabil
Dårlig til projekter med versionering
Hvad er fordelene og ulemperne ved TBD?
✅ Fordele:
Bedst til kontinuerlig integration (CI/CD)
Reducerer merge-konflikter
Hurtigere releases og bedre samarbejde
❌ Ulemper:
Kan være svært at adoptere uden disciplin
Feature flags kræver ekstra arbejde
Hvad er feature flags?
En teknik, hvor kodeændringer skjules bag en “flag”, så de kan aktiveres eller deaktiveres uden at ændre koden.
Hvordan håndterer man releases i Git?
- Release branches (i Git-Flow) → Til store versioner
- Feature flags (i TBD) → Kontinuerlig frigivelse
Hvornår er Git-Flow bedst?
- Når du versionerer software
- Hvis du vedligeholder flere versioner af dit produkt
Hvornår er GitHub Flow bedst?
- Når du laver web apps og SaaS-produkter
- Hvis du vil have en simpel proces med CI/CD
Hvornår er Trunk-Based Development bedst?
- Hvis du kører kontinuerlig integration og deployment (CI/CD)
- Hvis du vil have hurtigere releases og færre branches
Hvilke forskellige typer branches er der?
-Feature branches
-Release branches
-Hotfix branches