Appearance
Git werkritme: branchen & PR's maken
De gouden regel
Je werkt nooit direct op main. Je zorgt dat je lokale main gelijk is aan live, en dáárvandaan maak je een nieuwe branch voor je werk. Die branch wordt straks je PR.
Nieuwe feature starten
Elke keer als je iets nieuws gaat doen, begin je vanaf een verse main:
bash
git checkout main # ga naar main
git pull origin main # haal de laatste live versie op
git checkout -b mijn-feature # maak nieuwe branch vanaf die verse mainbash
git checkout main
git pull origin main
git checkout -b mijn-featureWerken & committen
Nu werk je in mijn-feature. Committen zoals je gewend bent inclusief de PR:
bash
git add .
git commit -m "beschrijving"
git push -u origin mijn-featureLokaal aan deze branch werken via (als branch lokaal al bestaat)
bash
git fetch origin
git switch partner-panel
git pullDe PR maken
Push je branch naar GitHub:
bash
git push -u origin mijn-featureDe -u (upstream) zorgt dat je daarna gewoon git push kunt doen zonder de rest. Na deze push geeft de terminal je meestal meteen een klikbare link om de PR aan te maken op GitHub.
Met de GitHub CLI (gh) kan het direct vanuit de terminal:
bash
gh pr create --base main --fillDit maakt de PR aan met titel/omschrijving op basis van je commits.
Naar de juiste branch schakelen
Een paar opties:
Vlak voor het committen — vraag me gewoon "welke branch zitten we op?" of laat me git branch --show-current draaien voordat je "commit en push" zegt. Ik kan dat voortaan ook standaard even checken en melden voor ik commit, als je dat wilt.
Zelf wisselen in je terminal: git checkout 3stappen-lijnen # of: git switch 3stappen-lijnen Check eerst met git branch (sterretje bij de actieve branch) of git status welke branch actief is.
Structurele oplossing voor die 2 tabs — met git worktrees heeft elke tab zijn eigen map én eigen branch, dus ze kunnen elkaar nooit meer verwarren: git worktree add ../classicswedes-kaart-scroll kaart-scroll Dan werk je in tab 1 gewoon in classicswedes/ (branch A) en in tab 2 in classicswedes-kaart-scroll/ (branch B) — geen checkouts meer nodig, dus geen risico dat de "actieve" branch onder je voeten wisselt.
Git Worktree
Je huidige flow is prima zolang je maar in één tab tegelijk werkt. Het probleem ontstaat pas zodra je een 2e tab opent tegen dezelfde map — dan delen beide tabs één checkout, en wint wie het laatst checkout deed (dat is precies wat er hierboven gebeurde).
Aangezien je dat blijkbaar wél regelmatig doet (2 tabs, 2 branches), is worktree hier de betere keuze. Het vervangt je 3 commando's door 1, en je hebt nooit meer last van "welke branch staat er nu eigenlijk actief":
bash
git fetch origin
git worktree add ../classicswedes-mijn-feature -b mijn-feature origin/mainDat maakt een nieuwe map ../classicswedes-mijn-feature met daarin al de nieuwe branch, gebaseerd op de laatste main — zonder dat je eerst in je huidige tab naar main hoeft te switchen (dat zou je andere tab juist kunnen verstoren als die daar toevallig ook op zit). Open die nieuwe map in je 2e tab/editor-venster, en beide tabs hebben nu permanent hun eigen branch, volledig onafhankelijk.
Opruimen als de feature klaar is:
bash
git worktree remove ../classicswedes-mijn-featureVuistregel: één tab tegelijk → gewoon checkout -b blijven doen zoals je nu doet. Meerdere tabs tegelijk open → worktree, dat voorkomt exact het soort mixup van hierboven.
Openstaande changes op de verkeerde branch?
Ben je al begonnen met werken voordat je een nieuwe branch maakte? Zet het werk dan over naar een verse branch met stash:
bash
git stash # werk tijdelijk opzij
git checkout main
git pull origin main # main gelijktrekken met live
git checkout -b feat/nieuwe-naam
git stash pop # werk terugzetten op de nieuwe branchDaarna committen en pushen zoals hierboven.
Handige checks
Even kijken waar je staat voordat je iets doet:
bash
git branch # welke branch ben ik? (sterretje)
git status # ben ik behind/ahead? welke changes staan open?
git remote -v # naar welke remote wijst dit?Waarom dit werkt
Je main blijft altijd een schone spiegel van live, en al je werk zit in losse branches. Raak je in de knoop, dan gooi je gewoon de branch weg zonder dat live iets merkt. Omdat je elke keer opnieuw pull op main doet vóór je een branch maakt, werk je nooit per ongeluk op een verouderde basis.
Tip: Loopt
mainintussen vooruit op je feature-branch? Trek main er dan even in terwijl je op je feature-branch staat (git merge main) om conflicten vroeg te zien.