Sobes.tech
Junior

Ce este cherry-pick în contextul sistemelor de control al versiunilor?

sobes.tech AI

Răspuns de la AI

Cherry-pick în Git este o operație care permite aplicarea modificărilor dintr-un commit specific pe o altă ramură. Acest lucru este util atunci când trebuie să transferați corecții sau funcții specifice dintr-o ramură în alta, fără a transfera toate commit-urile ulterioare.

Aplicare:

  1. Se selectează commit-ul: Se determină hash-ul commit-ului pe care doriți să-l "copiați".
  2. Se comută pe ramura țintă: Se trece pe ramura unde se vor aplica modificările.
  3. Se execută cherry-pick: Se rulează comanda git cherry-pick <commit-hash>. Git va încerca să aplice modificările din commit-ul selectat în ramura curentă.
# Trecere pe ramura țintă
git checkout main

# Aplicarea modificărilor din commit cu hash abcdef1
git cherry-pick abcdef1

Scenarii de utilizare posibile:

  • Corectarea unei erori într-o ramură de release veche.
  • Transferul unei funcții specifice din ramura de dezvoltare în staging sau producție.
  • Anularea modificărilor dintr-un commit specific (folosind opțiunea -n și apoi git revert).

Diferențe față de merge și rebase:

  • merge unește toate modificările dintr-o ramură în alta.
  • rebase transferă toate commit-urile unei ramuri peste alta.
  • cherry-pick transferă doar commit-ul selectat, creând un nou commit cu aceleași modificări în ramura țintă.

Este important să rețineți că cherry-pick creează un nou commit cu un hash diferit. Acest lucru poate duce la duplicarea modificărilor dacă același commit este ulterior combinat cu ramura țintă în alt mod. Se recomandă utilizarea cu precauție și înțelegerea consecințelor.