Introducere în GIT Cherry-pick
În acest articol, vom afla în detaliu despre GIT Cherry-pick în detaliu. Există mulți programatori care lucrează la aceeași dezvoltare de software din diferite colțuri ale lumii. Atunci cum să gestionați codurile? Cum îi vor face pe ceilalți să înțeleagă ce schimbări au făcut? Cum să comiteți codurile și să mențineți diferite versiuni? Cum să îmbini codurile?
Pentru a rezolva aceste probleme, GIT a intrat în lumea dezvoltării. GIT este un sistem de control al codului sursă (SCM) remarcabil și sistemul de control distribuit al versiunilor. GIT a fost creat de Linux Torvald, persoana care a dezvoltat nucleul Linux. Evident, este un instrument open-source în care fiecare programator poate contribui la construirea unei aplicații software din orice parte a lumii.
GIT are multe caracteristici. Poate avea mai multe ramuri. Un dezvoltator poate scrie coduri după ce și-a creat propria sucursală în sistemul local și să o îmbine cu sucursala principală sau cu alte sucursale ale depozitului GIT de la distanță.
Ce este GIT Cherry-pick?
Imaginați-vă, munca de proiect continuă să scrie un scenariu despre istoria și evoluția telefoanelor mobile. Deci, există mulți oameni care lucrează la același proiect și toți lucrează separat. Cu toate acestea, la final, scenariul tuturor va fi compilat împreună.
Acum, membrul A scrie despre telefoanele Apple și își dă seama brusc că poate fi mai bun. Astfel, el a informat problema celorlalți membri ai echipei care lucrează la același proiect. Un alt membru X i-a spus că scrie un script pe telefoanele Android și i-a cerut membrilor A să arunce o privire.
Apoi, membrul A a analizat scenariul coechipierului și a descoperit că unele dintre porțiuni sunt aceleași cu unele schimbări care sunt cu adevărat bune. Prin urmare, a cireș a ales acele schimbări și a lipit în scenariul său. Este același lucru pe care l-a numit cherry-pick în GIT în domeniul industriei de codare a software-ului.
Git-cherry-pick este o comandă puternică de git, iar cireșul-picking este un proces de a ridica un angajament dintr-o sucursală și de a-l aplica pe o altă ramură. În cuvinte simple, pot exista mai multe ramuri în care dezvoltatorii își angajează codurile. Acum, un dezvoltator trebuia să-și angajeze codurile din sucursala A, cu toate acestea, a comis din greșeală codurile din sucursala B. În acest timp, cireșul poate schimba angajamentul în ramura corectă.
Utilizați comanda de mai jos (în sistemul Unix) pentru a cunoaște diferite opțiuni pentru git-cherry-pick,
Comanda:
$man git-cherry-pick
Sintaxa pentru comanda cherry-pick,
Sintaxă:
git cherry-pick (–edit) (-n) (-m parent-number) (-x)
Când folosim GIT Cherry-pick?
Git-cherry-pick este un instrument util, însă nu este cea mai bună practică pentru tot timpul. git-cherry-pick poate fi utilizat în următoarele scenarii,
- Pentru a-l corecta în mod accidental un angajament făcut într-o altă ramură.
- Fuziuni tradiționale preferabile
- Pentru a aplica modificările într-un angajament existent.
- Compromis duplicat
- Corectarea unui bug
Cum funcționează GIT Cherry-pick?
Un defect găsit în cod în mediul de producție și o soluție trebuie să fie pus în aplicare. După ce modificarea a fost pusă în aplicare și un defect a fost remediat, acum este timpul să readucem această modificare de cod în mediul de dezvoltare, astfel încât defectul să nu se mai producă din nou în mediul de producție în viitor.
Prima opțiune este o simplă fuziune de git și este o soluție ideală dacă funcționează. Cu toate acestea, există și alte modificări în mediul de producție, iar acestea nu pot fi readuse în mediul de dezvoltare în timp ce fuzionează. Și în acest caz, cireșul-culegere este opțiunea corectă.
Cherry-pick aduce acel angajament care a fost făcut doar pentru remedierea erorilor. Nu alege celelalte angajamente.
Iată o ilustrație,
Fig 1: G și H sunt angajamentele filialei de producție. Sucursala de dezvoltare A la F se angajează. O problemă se găsește în filiala Producție. O soluție este dezvoltată în H commit, care trebuie să se aplice în ramura de dezvoltare, dar angajamentul G nu este necesar să fie aplicat.
Fig 2: Acum, angajamentul H este cireș pe ramura Dezvoltării și angajamentul rezultat este H '. Modificările de angajament G nu sunt incluse în ramura Dezvoltare.
Cum se utilizează GIT Cherry-pick cu exemplu?
Să presupunem că avem două ramuri (master și new_feature) (comanda folosită pentru a vedea ramura branch-git)
Am făcut din greșeală angajarea (Evidențiată) în ramura new_feature. (comanda folosită pentru a vedea log-urile log-git angajate)
Cu toate acestea, trebuia să fie doar în ramura principală. Copiați mai întâi SHA evidențiat într-un bloc de notițe.
Acum vom folosi o comandă git-cherry-pick pentru a muta această angajare în sucursala principală, însă înainte de aceasta trebuie să trecem la sucursală principală (comandă folosită pentru a comuta check-branch-git < branchname > )
Acum putem vedea că același angajament este disponibil în ramura principală (comanda folosit-git log)
Pentru mai multe exemple de comenzi git cherry-pick, consultați linkul de mai jos,
https://git-scm.com/docs/git-cherry-pick
Lucruri importante de reținut
Trei lucruri trebuie să vă amintiți în timp ce folosiți cireșul și lucrați în echipă.
1. standardizarea mesajului de comitere: este mai bine să utilizăm standardizarea mesajului de comitere și -x dacă vom alege cireșe dintr-o sucursală publică.
git cherry-pick -x
Acesta va evita fuziunea conflictelor în viitor.
2. copiați peste note: Uneori, unele dintre cireșe-pick au note și atunci când rulăm cherry-pick, notele nu sunt copiate. Prin urmare, este mai bine să-l utilizați.
git notes copy
3. Cryry-pick mai multe comitete atunci când acestea sunt numai liniare: Vrem să cherry-pick mai multe comit-uri precum G, H (Fig. 1), dacă sunt liniare, atunci folosiți numai comanda de mai jos,
git cherry-pick G^..H
Concluzie
Să presupunem că dorim să luăm un angajament specific de la o altă sucursală și să o aplicăm la sucursala curentă, iată pașii recomandați,
1. Găsiți mai întâi hash-ul care trebuie să fie ales pentru cireșe.
2. Accesați sucursala de destinație.
3. git cherry-pick -x
Rezolvați conflictele dacă se întâmplă. Dacă există note în angajamentul inițial, acestea trebuie copiate.
git notes copy
Articole recomandate
Acesta este un ghid pentru GIT Cherry-pick. Aici vom discuta despre modul său de funcționare și modul de utilizare a cireșelor-git cu exemple în detaliu. De asemenea, puteți consulta următoarele articole pentru a afla mai multe -
- Instrumente Git
- Terminologie Git
- Eticheta de verificare a gitului
- Ce este Git Branch?