git cherry-pick în Git

Copiază și aplică un commit specific dintr-o altă ramură în ramura curentă.

Sintaxă comandă
git cherry-pick [opțiuni] commit...

Ce face git cherry-pick

Comanda git cherry-pick (culegerea cireșelor din pom) este utilă când ai nevoie doar de un anumit fix sau de o singură funcționalitate dintr-o ramură secundară, fără a aduce tot istoricul acelei ramuri prin merge.

Git extrage modificările aduse de commit-ul specificat prin hash și creează un commit nou echivalent pe ramura ta curentă.

Opțiuni și argumente

Opțiune / Parametru Descriere
-e, --edit Permite modificarea mesajului de commit înainte de aplicare.
-n, --no-commit Aplică modificările de cod direct în directorul de lucru și în staging, fără a crea automat commit-ul.
--abort Anulează operațiunea și revine la starea anterioară în caz de conflicte.

Exemple

Exemplul 1: Aplicarea unui commit de remediere rapidă (hotfix)

Copiem commit-ul 3a1b2c dintr-o ramură de test direct în main.

git cherry-pick 3a1b2c

Ieșire în terminal

[main 9f8e7d] Remediaza eroarea de calcul al TVA-ului

Greșeli frecvente

  • Folosirea excesivă a lui cherry-pick în loc de ramuri bine structurate cu merge: fiecare cherry-pick creează un commit duplicat cu un hash nou, ceea ce poate duce la conflicte dacă ulterior decizi să îmbini întreaga ramură.

Comenzi înrudite

  • git merge: Îmbină istoricul și modificările dintr-o altă ramură în ramura curentă.
  • git rebase: Reaplică commit-urile din ramura curentă peste o altă ramură, creând un istoric perfect liniar.
  • git commit: Înregistrează un nou instantaneu permanent al fișierelor din staging în istoricul depozitului.