Git Cherry Pick

git cherry-pick este o comandă puternică care permite preluarea prin referință a unor comenzi Git arbitrare și adăugarea lor la HEAD-ul de lucru curent. Cherry picking este actul de a alege o confirmare dintr-o ramură și de a o aplica în alta. git cherry-pick poate fi utilă pentru anularea modificărilor. De exemplu, să spunem că o confirmare este făcută din greșeală în ramura greșită. Puteți trece la ramura corectă și să faceți cherry-pick pentru a duce confirmarea acolo unde ar trebui să aparțină.

Când să folosiți git cherry pick

git cherry-pick este un instrument util, dar nu întotdeauna o practică optimă. Cherry picking poate cauza comenzi duplicate și multe scenarii în care cherry picking ar funcționa, fuziunile tradiționale sunt preferate în schimb. Acestea fiind spuse, git cherry-pick este un instrument la îndemână pentru câteva scenarii…

Colaborarea în echipă.

De multe ori o echipă va găsi membri individuali care lucrează în sau în jurul aceluiași cod. Poate că o nouă caracteristică de produs are o componentă backend și frontend. Este posibil să existe un cod partajat între a două sectoare de produs. Poate că dezvoltatorul backend creează o structură de date pe care va trebui să o utilizeze și frontend-ul. Dezvoltatorul frontend ar putea folosi git cherry-pick pentru a alege confirmarea în care a fost creată această structură de date ipotetică. Această selectare ar permite dezvoltatorului frontend să continue progresul pe partea sa de proiect.

Corecții de erori

Când se descoperă o eroare, este important să se livreze o corecție utilizatorilor finali cât mai repede posibil. Pentru un scenariu de exemplu,să spunem că un dezvoltator a început să lucreze la o nouă caracteristică. În timpul dezvoltării acestei noi caracteristici, el identifică un bug preexistent. Dezvoltatorul creează un commit explicit care corectează această eroare. Această nouă confirmare de corecție poate fi preluată direct în ramura master pentru a remedia bug-ul înainte ca acesta să afecteze mai mulți utilizatori.

Anularea modificărilor și restabilirea confirmărilor pierdute

Câteodată o ramură feature poate deveni veche și să nu fie fuzionată în master. Uneori, o cerere de extragere poate fi închisă fără a fi fuzionată. Git nu pierde niciodată aceste comenzi și, prin comenzi precum git log și git reflog, acestea pot fi găsite și readuse la viață.

Cum se utilizează git cherry pick

Pentru a demonstra cum se utilizează git cherry-pick să presupunem că avem un depozit cu următoarea stare a ramurii:

 a - b - c - d Master
\
e - f - g Feature

git cherry-pick utilizarea este simplă și poate fi executată ca:

git cherry-pick commitSha

În acest exemplu commitSha este o referință de commit. Puteți găsi o referință de confirmare folosind git log. În acest exemplu pe care l-am construit să spunem că am vrut să folosim commit `f` în master. Mai întâi ne asigurăm că lucrăm pe ramura master.

git checkout master

Apoi executăm cherry-pick cu următoarea comandă:

git cherry-pick f

După ce a fost executată, istoricul nostru Git va arăta așa:

git cherry-pick f

:

 a - b - c - d - f Master
\
e - f - g Feature

Compromisiunea f a fost preluată cu succes în ramura master

Exemple de git cherry pick

git cherry pick pot fi trecute și câteva opțiuni de execuție.

-edit

Pasarea opțiunii -edit va face ca git să ceară un mesaj de confirmare înainte de a aplica operația cherry-pick

--no-commit

Opțiunea --no-commit va executa cherry pick, dar în loc să facă o nouă confirmare va muta conținutul confirmării țintă în directorul de lucru al ramurii curente.

--signoff

Opțiunea --signoff va adăuga o linie de semnătură ‘signoff’ la sfârșitul mesajului de confirmare cherry-pick

În plus față de aceste opțiuni utile, git cherry-pick acceptă, de asemenea, o varietate de opțiuni de strategie de fuziune. Aflați mai multe despre aceste opțiuni în documentația git merge strategies.

În plus, git cherry-pick acceptă și opțiuni de intrare pentru rezolvarea conflictelor de fuziune, aceasta include opțiuni: --abort --continue și --quit aceste opțiuni sunt acoperite mai în profunzime în ceea ce privește git merge și git rebase.

Rezumat

Cherry picking este o comandă puternică și convenabilă care este incredibil de utilă în câteva scenarii. Cherry picking nu ar trebui să fie folosit în mod abuziv în loc de git merge sau git rebase. Comanda git log este necesară pentru a ajuta la găsirea comenzilor pentru cherry picking.

Lasă un răspuns

Adresa ta de email nu va fi publicată.