Cherry-Picking

Git avansat

Amanda Crawford-Adamo

Software and Data Engineer

Ce este cherry-pick?

Aplică modificările dintr-un commit specific pe o altă ramură

Cherry-Pick pentru un singur commit

git cherry-pick <commit-hash>

Cherry-Pick pentru mai multe commit-uri

git cherry-pick <hash1> <hash2> ..

Scop

  • Aplicarea corecțiilor de erori între ramuri
  • Revenirea funcționalităților la versiuni stabile
  • Aplicarea selectivă a modificărilor experimentale
  • Recuperarea commit-urilor pierdute
Git avansat

Exemplu de cherry-pick

Un graf cu ramurile main și feature. Main are două commit-uri. Ramura feature diverge din main după ultimul commit.

Două imagini cu jurnalul ramurilor main și feature înainte de procesul cherry-pick.

Git avansat

Procesul cherry-pick

  1. Comutați pe ramura main

    git checkout main
    
  2. Rulați comanda cherry-pick pentru a prelua modificările commit-ului def456 din ramura feature.

    git cherry-pick def456
    

Un graf cu ramurile main și feature. Main are trei commit-uri. Ramura feature diverge din main după al doilea commit, cu două commit-uri suplimentare. Al treilea commit din main este preluat prin cherry-pick din ultimul commit al ramurii feature.

Git avansat

Rezolvarea conflictelor cherry-pick

Pași pentru rezolvarea conflictelor
  1. Editați manual fișierele cu conflicte
  2. Adăugați fișierele rezolvate în staging cu git add <resolved-files>
  3. Continuați cherry-pick cu indicatorul --continue
git cherry-pick --continue
Oprirea unui cherry-pick

Pentru a anula operațiunea, utilizați indicatorul --abort

git cherry-pick --abort
Git avansat

Când se utilizează cherry-pick

Cazuri de utilizare

  1. Aplicarea remedierilor rapide (hotfix)
  2. Testarea funcționalităților izolate

Precauții

  1. Poate crea commit-uri duplicate
  2. Poate complica istoricul proiectului dacă este folosit excesiv
  3. Pentru modificări mari: luați în considerare merge sau rebase
Git avansat

Să exersăm!

Git avansat

Preparing Video For Download...