Sobes.tech
Junior

Ce este cherry-pick?

sobes.tech AI

Răspuns de la AI

git cherry-pick este utilizat pentru a transfera unul sau mai multe commits dintr-o ramură în alta.

Principiul de funcționare:

  1. Selectează commit-ul (sau commits) specificat în ramura sursă.
  2. Aplică modificările conținute în aceste commits la ramura activă curentă.
  3. Creează noi commits în ramura curentă cu aceleași modificări și mesaje ca și cele originale.

Când să folosiți:

  • Transferarea unei corecții specifice de eroare dintr-o ramură (de exemplu, producție) în alta (de exemplu, dezvoltare), fără a afecta alte modificări.
  • Aplicarea modificărilor dintr-o ramură de caracteristici în alta, fără a le fuziona complet.
  • Anularea merge-urilor incorecte păstrând commits individuale.

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

  • merge: Unește întreaga istorie a modificărilor dintr-o ramură în alta.
  • rebase: Rescrie istoria commits, mutându-le pe o bază nouă.
  • cherry-pick: Aplică doar commits selectați, creând altele noi și fără a modifica istoria commits-urilor originale.

Comanda principală:

# Transferă un commit
git cherry-pick <commit-hash>

# Transferă mai multe commits (în ordinea indicată)
git cherry-pick <commit-hash-1> <commit-hash-2> ...

Exemplu:

Să presupunem că există două ramuri: main și feature. În ramura feature s-a făcut un commit fix-typo. Este necesar să transferați acest commit în ramura main.

# Trecerea pe ramura țintă
git checkout main

# Executarea cherry-pick folosind hash-ul commit-ului din ramura feature
git cherry-pick 7f3bca2 # Exemplu de hash

După executarea comenzii, în ramura main va apărea un nou commit cu aceleași modificări ca și fix-typo, dar cu un hash diferit.