logo

Git – Cherry Pick

git cireș-culeac în git înseamnă alegerea unui commit dintr-o ramură și aplicarea lui în altă ramură. Acest lucru este în contrast cu alte moduri, cum ar fi combina și depăşire care în mod normal aplică multe comite într-o altă ramură.

git cherry-pick este exact ca rebazare , un concept avansat și, de asemenea, o comandă puternică. Este folosit în principal dacă nu doriți să fuzionați întreaga ramură și doriți unele dintre comiteri.



Când să folosiți cherry-pick?

Să presupunem că un dezvoltator nu recunoaște în ce ramură se află în prezent și, din greșeală, se angajează într-o altă ramură în loc să se angajeze în ramura principală. Acum, pentru a o repara, trebuie mai întâi să alerge git show , apoi salvați commit-ul, verificați ramura principală, aplicați un patch acolo și comiteți cu același mesaj de comit. Dar toate acestea se pot face automat folosind o singură comandă, de exemplu. cireș-culeac.

Pentru a înțelege mai bine, consultați diagrama de mai jos, după cum urmează:

Înainte de Cherry Pick



Înainte de Cherry Pick

După Cherry Pick

După Cherry Pick

Comanda pentru Cherry-pick este următoarea:



vlc media player descărca youtube
git cherry-pick>

Comite hash: Un commit hash este un identificator unic care este generat de Git. Fiecare commit are un hash de comit.

Notă: În timp ce utilizați această comandă, asigurați-vă că vă aflați în ramura în care doriți să aplicați commit-ul.

Cum se utilizează cireșe?

Iată explicația pas cu pas a utilizării comenzii cherry-pick în proiectul creat de mai jos, prezentat mai jos, după cum urmează:

Pasul 1: Deschiderea git bash și crearea unui nou proiect numit probă și inițializarea repo folosind E fierbinte comanda.

Pasul 2: Crearea unui ' .TXT' fișier folosind noi comandă la proiect, să spunem un fișier index și să-l adăugăm la proiectul nostru exemplu și să facem un commit și să scriem un mesaj de commit înainte de a apăsa pe Enter.

Notă: După rularea noi comandă, tastați :wq pentru a salva și a părăsi fișierul.

diferența dintre leu și tigru

Se poate verifica comiterea dvs. prin git log comanda usor:

Pasul 3: Acum să presupunem că avem 2 versiuni, așa că creați 2 ramuri diferite folosind ramură git comanda și trece la o ramură, să spunem 2 folosind git checkout comanda.

Notă: Se pot vizualiza simplu toate ramurile rulând comanda git branch, așa cum se arată în diagrama de mai jos.

Pasul 4: Acum să presupunem că doriți să lucrați la o funcție nouă, așa că crearea și adăugarea unui fișier de caracteristici noi să spunem feature.txt folosind noi și adăuga respectiv, după cum se arată mai jos. Apoi comite modificările cu un mesaj de confirmare.

Se poate verifica commit prin comanda git log, așa cum se arată mai jos:

Arată în mod clar primul nostru angajament unde se află filiala noastră 1, iar în ramura 2 s-a îndepărtat mai departe și lucrăm în prezent la caracteristica noastră din filiala 2

Pasul 5: Acum să presupunem că am găsit o eroare în caracteristica noastră și am ajuns să știm că același bug este prezent și în prima noastră ramură.

instrucțiunea switch java

Și acum încercăm să remediam o eroare sau o problemă, așa cum se arată mai jos, adăugând un fișier fix.txt, să presupunem și să îl adăugăm la ramura curentă, adică 2 și comitând modificările necesare.

Verificarea angajamentelor noastre finale:

Pasul 6: Acum, am remediat eroarea din ramura 2, dar trebuie să adăugăm această remediere și la ramura noastră 1, dar nu dorim să îmbinăm această ramură 2 în ramura noastră 1, deoarece lucrul s-ar putea să fie încă în curs de funcționare.

Astfel, în acest scenariu, putem alege acest commit special. Pentru a face acest lucru, trebuie doar să copiați hash valoare evidențiate în diagrama de mai sus, apoi treceți la ramura 1 folosind checkout , apoi utilizați comanda cireș-culege și lipiți hash-ul pe care tocmai l-am copiat.

După cum se vede clar din cele de mai sus, atunci observăm că anterior aveam doar index.txt înainte de a face cherry-picking, dar acum avem fișierul fix.txt și în prima noastră ramură.

Acum, dacă încercăm să verificăm git log –oneline , vom putea vedea că commit-ul a venit și în ramura 1.

Câteva cazuri importante de utilizare ale Cherry-pick

Următoarele sunt câteva aplicații comune ale Cherry-Pick:

  1. Dacă din greșeală efectuați un commit într-o ramură incorectă, atunci folosind cherry-pick puteți aplica modificările necesare.
  2. Să presupunem că aceeași structură de date va fi utilizată atât de front-end, cât și de backend-ul unui proiect. Apoi, un dezvoltator poate folosi cherry-pick pentru a alege commit-ul și îl poate folosi pentru partea sa din proiect.
  3. În momentul în care se găsește o eroare, este esențial să transmiteți o remediere clienților finali cât de repede ar fi de așteptat.
  4. Uneori, o ramură de componentă ar putea să devină veche și să nu converge în ramura principală, iar cererea s-ar putea închide, dar din moment ce git nu pierde niciodată aceste comiteri, poate fi selectată și va reveni.

Dezavantajele utilizării Cherry Pick

Cherry-pick nu ar trebui să fie folosit întotdeauna, deoarece poate provoca comiteri de copiere și numeroase situații în care cherry-picking ar funcționa, îmbinările convenționale sunt plăcute toate lucrurile luate în considerare. De asemenea, în situația în care commit-urile din 2 sau mai multe ramuri actualizează linii similare de cod cu diferite substanțe și git cherry-pick one commit la cealaltă ramură, provoacă și conflict.

Concluzie

Comanda cherry-pick a lui Git este un instrument puternic pentru aplicarea selectivă a comiterilor specifice între ramuri. Este excelent pentru remedierea greșelilor și partajarea codului, dar utilizarea excesivă a acestuia poate duce la probleme, mai ales atunci când comiterile ating aceleași linii de cod. Așadar, folosiți-l cu înțelepciune pentru a menține un istoric de cod curat și eficient.