DevOps-bootcamp · Les

Commits cherry-picken

Begrijp hoe u afzonderlijke commits selectief van de ene branch naar de andere toepast met `git cherry-pick`.

Les 3 van 411 stappen

Commits cherry-picken is een gratis DevOps-bootcamp-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject DevOps-bootcamp. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus DevOps-bootcamp bevat in totaal 4 lessen.

Commits selectief verplaatsen

Wat als je maar één specifieke wijziging uit een branch nodig hebt, en niet de hele branch? Met git cherry-pick kun je één commit uit elke plek in de geschiedenis van je repository rechtstreeks op je huidige branch toepassen.

Het is alsof je één kers uit een boom plukt! Hiermee maak je een geheel nieuwe commit op je huidige branch die de wijzigingen van het origineel dupliceert.

Wanneer gebruik je cherry-pick?

Stel dat je aan een grote featurebranch werkt en ontdekt dat een cruciale foutoplossing die je daar hebt gemaakt nu meteen ook nodig is op je belangrijkste productiebranch. Je wilt de hele featurebranch nog niet samenvoegen.

Dit is een ideaal scenario voor cherry-pick. Hiermee kun je afzonderlijke wijzigingen overzetten zonder niet-gerelateerd werk mee te nemen.

De basisopdracht

De basisopdracht is eenvoudig: git cherry-pick <commit-hash>.

  • Controleer eerst of je op de branch staat waarop je de commit wilt toepassen.
  • Zoek vervolgens de unieke identificatie (hash) van de commit die je wilt selecteren.
  • Git maakt daarna op je huidige branch een nieuwe commit met dezelfde wijzigingen.
git cherry-pick <commit-hash>

Commit-hashes vinden

Voor cherry-pick heb je de hash nodig! Je kunt die vinden met git log.

De optie --oneline is erg handig voor een beknopt overzicht:

git log --oneline

Scenario voor cherry-pick instellen

Laten we een eenvoudig scenario instellen. We maken een branch main en een branch feature/login. Op feature/login maken we een commit die we naar main willen overbrengen.

We willen de commit "HOTFIX" naar main overbrengen.

git init my_project
cd my_project
echo "Initial content" > file.txt
git add file.txt
git commit -m "Initial commit"
git branch feature/login
git checkout feature/login
echo "Login feature added" >> login.txt
git add login.txt
git commit -m "Add basic login feature"
echo "Fix: Login button style" >> style.css
git add style.css
git commit -m "HOTFIX: Fix login button styling"

Cherry-pick uitvoeren

Schakel nu terug naar de branch main en pas de commit "HOTFIX" toe. Stel dat de hash voor "HOTFIX: Fix login button styling" abcdefg was.

Hierna verschijnt er op je branch main een nieuwe commit met dezelfde wijzigingen als abcdefg. Gebruik git log --oneline om die te bekijken!

git checkout main
git cherry-pick abcdefg

Conflicten bij cherry-pick oplossen

Net als bij samenvoegen kan cherry-pick conflicten veroorzaken als dezelfde regels code in beide geschiedenissen verschillend zijn gewijzigd.

  • Git pauzeert de bewerking en markeert de bestanden met conflicten.
  • Los de conflicten handmatig op in de bestanden.
  • Voeg de opgeloste bestanden toe met git add.
  • Voltooi de bewerking met git cherry-pick --continue.
# After resolving conflicts in editor:
git add .
git cherry-pick --continue

Meerdere commits selecteren

Je kunt meerdere commits tegelijk selecteren met cherry-pick.

Als je een reeks commits wilt selecteren (van hashA tot, maar exclusief, hashB):

git cherry-pick hashA..hashB

Wanneer wel en niet gebruiken

Cherry-pick is krachtig, maar gebruik het weloverwogen.

  • Geschikt voor: hotfixes en het overzetten van kleine, afzonderlijke wijzigingen tussen niet-gerelateerde branches.
  • Minder geschikt voor: het regelmatig integreren van grote hoeveelheden wijzigingen. Dat kan leiden tot dubbele commits en maakt de geschiedenis moeilijker te volgen als je niet voorzichtig bent. Gebruik liever samenvoegen of rebase voor de volledige integratie van een branch.

Korte controle: doel van cherry-pick

Je hebt op je branch feature/new-design een commit die een cruciaal probleem met de opmaak oplost. Je hebt deze oplossing onmiddellijk nodig op je branch main, zonder de hele featurebranch samen te voegen.

Samenvatting: gerichte wijzigingen

In deze les hebben we git cherry-pick geleerd, een handige opdracht om specifieke commits op je huidige branch toe te passen.

  • Er wordt een nieuwe commit met dezelfde wijzigingen gemaakt op je doelbranch.
  • Dit is ideaal voor hotfixes of het overzetten van afzonderlijke wijzigingen.
  • Je hebt de hash van de commit nodig, die je meestal vindt met git log --oneline.
  • Bereid je erop voor dat je conflicten moet oplossen, net als bij samenvoegen.

Als je cherry-pick beheerst, krijg je nauwkeurige controle over de geschiedenis van je project!

Gratis beginnen

Leer DevOps-bootcamp met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
142
Lessen
568

Veelgestelde vragen

Is de les “Commits cherry-picken” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad DevOps-bootcamp, waaronder “Commits cherry-picken”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus DevOps-bootcamp bevat in totaal 4 lessen.

Wat leer ik in “Commits cherry-picken”?

Begrijp hoe u afzonderlijke commits selectief van de ene branch naar de andere toepast met `git cherry-pick`. Je oefent met DevOps-bootcamp door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met DevOps-bootcamp te beginnen?

Ervaring vooraf is niet nodig. DevOps-bootcamp op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Commits cherry-picken”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over DevOps-bootcamp?

Ja. Elke les over DevOps-bootcamp bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Mergeconflicten handmatig oplossen
  2. Interactief rebasen voor geschiedenisbeheer
  3. Commits cherry-picken
  4. Git Rerere gebruiken om conflictoplossingen opnieuw te gebruiken
← Terug naar DevOps-bootcamp