Sobes.tech
Junior

Wat is cherry-pick?

sobes.tech AI

Antwoord van AI

git cherry-pick wordt gebruikt om één of meerdere commits van de ene tak te verplaatsen naar een andere.

Werking:

  1. Selecteert de opgegeven commit (of commits) in de bron tak.
  2. Past de wijzigingen in deze commits toe op de huidige actieve tak.
  3. Maakt nieuwe commits op de huidige tak met dezelfde wijzigingen en berichten als de originele commits.

Wanneer gebruiken:

  • Het overzetten van een specifieke bugfix van één tak (bijvoorbeeld productie) naar een andere (bijvoorbeeld ontwikkeling), zonder andere wijzigingen te beïnvloeden.
  • Het toepassen van wijzigingen van een feature tak op een andere, zonder ze volledig samen te voegen.
  • Het ongedaan maken van onjuiste merges met behoud van afzonderlijke commits.

Verschil met merge en rebase:

  • merge: Combineert de volledige geschiedenis van wijzigingen van één tak in een andere.
  • rebase: Herschrijft de commitgeschiedenis door ze op een nieuwe basis te plaatsen.
  • cherry-pick: Past alleen geselecteerde commits toe, maakt nieuwe commits en wijzigt de geschiedenis van de originele commits niet.

Belangrijkste commando:

# Een commit overzetten
git cherry-pick <commit-hash>

# Meerdere commits overzetten (volgens hun aangegeven volgorde)
git cherry-pick <commit-hash-1> <commit-hash-2> ...

Voorbeeld:

Stel dat er twee takken zijn: main en feature. Op de feature tak is een commit fix-typo gedaan. Deze moet worden overgezet naar main.

# Overschakelen naar de doel tak
git checkout main

# Cherry-pick uitvoeren met de hash van de commit uit de feature tak
git cherry-pick 7f3bca2 # Voorbeeld hash

Na het uitvoeren van het commando verschijnt er in main een nieuwe commit met dezelfde wijzigingen als fix-typo, maar met een andere hash.