advanced git commands
Acest tutorial explorează comenzi utile Git, cum ar fi Git Stash, Git Reset, Git Cherry Pick, Git Bisect și explică cum se integrează GitHub cu Jira:
În tutorialele noastre anterioare din această serie, am văzut majoritatea caracteristicilor GitHub.
În acest tutorial, vom analiza următoarele:
- Crearea lansărilor
- Integrare cu Atlassian Jira
- Comenzile Git cele mai utilizate pentru dezvoltatori
- Git Stash
- Git Cherry Pick
- Resetare Git
- Git Bisect
=> Aruncați o privire la Ghidul GitHub aici.
cum se folosește double în java
Ce veți învăța:
- Crearea lansărilor
- Integrarea GitHub cu Jira
- Comenzi Git avansate pentru dezvoltatori
- Concluzie
- Lectură recomandată
Crearea lansărilor
Lansările în GitHub sunt folosite pentru a vă asocia software-ul, pentru a adăuga note de editare și binare (fișiere WAR, EAR, JAR) pentru ca clienții și oamenii să le folosească.
Pentru a crea o versiune, accesați pagina principală a depozitului și faceți clic pe Lansări fila de sub Gestionați subiectele.
Click pe Creați o versiune nouă.
Furnizați o etichetă și un titlu de lansare. Binarele sunt, de asemenea, adăugate la versiune. Odată terminat, faceți clic pe Publicați versiunea.
Lansarea este acum gata cu codul sursă și binare.
Integrarea GitHub cu Jira
Unul dintre aspectele importante de trasabilitate este de a face referire la problema Jira cu comitetele din GitHub. GitHub poate fi integrat cu Jira nu numai pentru a face referire la problemă, ci și pentru a ajuta la crearea sucursalelor și Pull Request din interiorul Jira.
Așadar, de obicei, odată ce dezvoltatorul începe să lucreze la sarcină sau la erori, o ramură este creată de el. Postarea dezvoltării sau rezolvarea erorilor poate fi creată o cerere de extragere din Jira pentru a fuziona la principal maestru ramură. Sucursala creată de dezvoltator poate fi apoi ștearsă.
Pentru a configura integrarea, am folosit un plugin Git Integration pentru Jira. Acesta este un plugin comercial. Pluginul poate fi descărcat de la Aici
Instalați pluginul în Jira de la Administrator -> Suplimente.
Odată instalat pluginul, accesați Aplicație -> Git Repositories și conectați-vă la GitHub.
Introduceți numele de utilizator și parola GitHub. Clic Conectați .
Vor fi afișate depozitele menționate pentru contul de utilizator. Click pe Importați depozite pentru a finaliza configurarea integrării.
GitHub Commit With Jira Issue
Ca parte a mesajului de confirmare, introduceți așa cum se arată mai jos. Click pe Modificați comitetele .
Exemplul 1: Mai jos este un exemplu de Angajament inteligent care permite dezvoltatorilor să efectueze acțiuni cu privire la problemele Jira din mesajul de confirmare. O astfel de comandă este #cometariu împreună cu cheia Problemă care adaugă comentariul la problema Jira așa cum se arată mai jos.
Secțiunea de comentarii a fost actualizată.
Exemplul 2: Alocați unui utilizator și actualizați timpul petrecut ca 4 ore.
Folosește #atribui și #timp comanda smart commit din mesajul commit.
Ambele acțiuni au fost finalizate.
Exemplul 3: Schimbați starea problemei în In progres .
Creați o ramură
Deoarece sarcinile și erorile sunt atribuite dezvoltatorilor, trebuie să înceapă să lucreze la dezvoltare. Pentru aceasta, ei creează o ramură pentru problema la care lucrează, fac activitățile de dezvoltare și ridică o cerere de extragere pentru a fuziona în ramura master.
În numărul Jira din partea de jos, faceți clic pe Creați sucursală.
Click pe Creați sucursală.
În GitHub, modificați fișierul din ramura creată mai sus și comiteți același lucru.
Pe măsură ce dezvoltarea este finalizată, utilizatorul poate ridica o cerere de extragere de la Jira.
În partea de jos a numărului faceți clic pe Creați o cerere de extragere.
Click pe Crea. Solicitarea de extragere va fi afișată ca Deschisă.
Următorul pas este combinarea cererii de extragere în GitHub.
Starea este actualizată corespunzător în Jira.
Comenzi Git avansate pentru dezvoltatori
În această ultimă secțiune, vom analiza unele dintre comenzile Git utilizate în mod obișnuit pentru dezvoltatori. Nimic de-a face cu GitHub, dar îi va ajuta pe dezvoltatori înainte ca aceștia să introducă modificările la GitHub.
Git Stash
În majoritatea scenariilor de proiect când lucrați la o nouă caracteristică sau îmbunătățire, brusc ar fi nevoie să lucrați la un defect urgent care a fost raportat și care este un stop stop. Deoarece sunteți la jumătatea noii lucrări și nu ați terminat-o, nu are rost să comiteți modificările pe jumătate făcute.
Deci, este mai bine să suspendați sau să salvați temporar munca pe jumătate făcută, să lucrați la eroare și să reveniți la lucrarea la noua caracteristică sau îmbunătățire. Git stash oferă o soluție la acest lucru. Puteți schimba cu ușurință contextul modificărilor rapid.
Exemplul 1 :Să presupunem că lucrați la o sarcină care v-a fost atribuită și când priviți starea, arată că nu este urmărită de acum.
Dintr-o dată vi se atribuie un bug cu prioritate ridicată. Astfel, trebuie să salvăm temporar sau să ascundem lucrarea la care se lucrează în prezent.
Rulați următoarea comandă.
git stash salvați „Mesaj”
În acest moment directorul de lucru este curat. Orice comitere nouă poate fi făcută și dacă există erori, puteți schimba ramura pentru a lucra la ea etc.
Când doriți să aplicați din nou modificările pe care le-ați rămas, utilizați comanda.
git stash pop
Comanda de mai sus va elimina stash-ul din listă și va aplica ultima stare salvată.
De asemenea, puteți utiliza:
git stash se aplică
Comanda de mai sus va păstra modificările în stoc și nu le va elimina.
Acum modificările sunt reaplicate și puteți comite modificările.
Exemplul 2: Ascundeți modificările, schimbați ramura și combinați modificările.
Efectuați modificarea la fișierul HTML din fișierul maestru schimbări de ramură și depozitare.
Următorul este să treceți la gândac ramificați, faceți modificări și comiteți modificări.
git checkout -b eroare
Efectuați modificări în fișierul HTML.
git commit -a -m „Problemă de e-mail remediată”
Reveniți la maestru ramificați și reaplicați modificările de la stash.
Acum fuzionați din gândac ramură către maestru ramură. Realizați modificările după îmbinare.
Exemplul 3: Lucrul cu Multiple Stash.
În repo local, există 2 fișiere HTML. Deci, este posibil ca mai mulți dezvoltatori să lucreze la mai multe fișiere și să stocheze modificările, după cum este necesar, pentru a lucra la cererile urgente care le apar în cale pentru a remedia modificările.
Programatorul 1 funcționează pe hello.html și Programatorul 2 funcționează pe index.html.
Dezvoltator 1
Lista Stash are 1 intrare acum.
Dezvoltator 2
Lista Stash are acum 2 intrări. Ultima memorie este prima din stivă, care este stash @ {0}. Acum, ambii dezvoltatori pot face urgent orice alte angajări sau pot lucra la o altă ramură și apoi pot reveni la maestru ramificați și aplicați modificările stash.
Pentru a aplica cea mai recentă memorie, puteți rula
git stash pop
Pentru a aplica o memorie specifică în stivă executați următoarea comandă.
git stash pop stash @ {1}
Să aplicăm a doua stash care este stash @ {1}
În mod similar, se poate aplica cealaltă memorie.
Git Cherry Pick
Astăzi, dezvoltatorii lucrează pe mai multe ramuri, cum ar fi caracteristica, îmbunătățirea, eroarea etc.
Există situații în care trebuie selectate doar câteva angajamente specifice și nu fuzionează întreaga sucursală într-o altă sucursală. Aceasta se numește Cherry Pick. Acest proces vă permite să alegeți în mod arbitrar orice comitere Git din celelalte ramuri și să o atașați la capul actual al arborelui de lucru.
Exemplul 1:
În depozitul local git, avem următoarele 6 fișiere.
Un fișier este șters, spun file5.txt.
Aduceți modificările.
Uită-te la jurnal acum. File5.txt este șters.
Deci, vrem să Cherry-Pick comitetul în care am adăugat file5.txt. Trebuie să găsim ID-ul de commit al file5.tx și să executăm comanda.
git cherry-pick
În acest caz, ID-ul de validare a când a fost adăugat file5.txt este a2f0124
File5.txt este acum restaurat. Noi am ales Cireșul.
Exemplul 2:
Să modificăm file6.txt și să comită modificările în maestru ramură.
Uită-te la a doua linie din file6.txt unde e-mailul nu este specificat corect.
Creați o ramură de erori și remediați problema. În același timp, modificați și fișierul5.txt, astfel încât să avem mai multe confirmări efectuate în ramura de erori, dar Cherry-Pick va face doar comiterea efectuată în fișierul6.txt.
Fișierul 6 a fost modificat în gândac ramură.
Așadar, în general, am făcut modificări fișier5 și fișier6 în ramura Bug.
Să trecem acum la maestru branch și Cherry-Alegeți commit-ul făcut doar pentru file6.txt.
După cum puteți vedea, în loc să fuzionați gândac ramură în maestru ramură, tocmai am ales Cherry doar o comitere specifică și aplicată în ramura principală.
Resetare Git
Resetarea Git este o comandă puternică pentru a anula modificările locale. Deci, pentru a anula etapizarea, toate fișierele etapizate sunt utilizate de această comandă.
Exemplu
Modificați un fișier și adăugați-l la etapă. Resetați folosind comanda așa cum se arată atunci când modificările etapizate nu sunt etapizate.
Parametrii git reset comanda.
-moale: Acest parametru va indica HEAD-ul către un alt commit. Toate fișierele sunt schimbate între HEAD-ul original, iar commit-ul va fi organizat. Directorul de lucru este intact.
Uită-te la locația HEAD curentă.
Să ne întoarcem înapoi la 5 comiteri din istorie.
Relansați modificările.
-amestecat: Opțiunea este similară cu parametrul soft. De obicei, atunci când există unele comiteri greșite, le eliminați și le remediați ulterior și le comiteți înapoi. Deci, în esență, trebuie să adăugăm la index folosind git add și apoi git commit. Modificările sunt lăsate în arborele de lucru.
Să ne întoarcem cu 2 confirmări în istoric și să vedem că fișierele nu sunt urmărite.
Acum adăugați fișierele la etapă și comiteți modificările.
-greu: Acest parametru va sta într-un punct în care a existat un anumit fișier. Modificările nu vor fi disponibile în arborele de lucru.
Privind jurnalul de mai sus, ne putem întoarce la punctul în care a fost comis doar fișierul 1, adică ultima intrare.
Folosind git reset –hard
Git Bisect
Găsiți comiterea exactă care a încălcat codul (Toți suntem oameni la urma urmei). Adesea, în timpul testării aplicației, auzim de la testerii noștri că există o eroare sau că funcția este defectă și tu, ca dezvoltator, vei spune că a funcționat săptămâna trecută. Deci, ce s-a întâmplat și de ce a apărut această eroare?
Uneori, o modificare a celuilalt cod ar fi putut afecta funcția dvs. Trebuie să petreceți timp parcurgând istoria în care există o mulțime de angajamente care consumă mult timp și sunt greu de urmărit, care schimbare a cauzat ruperea codului.
Git Bisect este comanda pentru a găsi confirmarea exactă atunci când bug-ul a fost introdus. Cu Git bisect trebuie să alegeți două comitere, una bună și una rea. Aproximativ la jumătatea distanței dintre ambele confirmări va fi verificat. Verificați fiecare comitere fie rea, fie bună până când se găsește comiterea care a cauzat ruperea bug-ului sau a codului.
Exemplu:
- Creați un nou depozit git local și creați un fișier numit index.html
- Conținutul inițial al fișierului așa cum se arată.
- Adăugați la etapă și trimiteți la depozit.
- Creați un istoric al comitetelor așa cum se arată, astfel încât să putem alege între comiteri bune și rele. Acum, pe măsură ce comitetul inițial este făcut, faceți celelalte modificări așa cum se arată și comiteți la fel. În ansamblu, vom face 7 angajamente.
A doua schimbare
A treia schimbare
A patra schimbare
A cincea schimbare
A șasea schimbare
A șaptea schimbare
Să ne oprim aici. Deci, avem șapte comisii.
Dacă vă uitați la pagina Html, liniile de după „Toate cele 4 evenimente ...” sunt greșite și, prin urmare, documentația nu este corectă. Deci, trebuie să găsim commit-ul în care a fost introdusă eroarea, astfel încât să ne putem odihni HEAD-ul asupra acestui commit.
Să ne uităm la jurnal și să aflăm rău și comitere bună.
Ultimul commit nu este corect, deci poate fi un commit rău. Confirmarea a fost introdusă după a treia confruntare, astfel încât să putem avea A treia schimbare pe măsură ce cei buni comit.
Procesul de bisectare începe cu git bisect start și se termină cu git bisect reset.
git bisectează rău // Întrucât ultima comitere este rea. Nu este nevoie să furnizați codul de confirmare.
git bisectează bine
Acum puteți vedea că HEAD este acum între jumătate din angajamentul rău și cel bun.
Uită-te la conținutul index.html și vezi dacă există un commit bun. Dacă nu, eroarea încă nu este găsită.
Nu chiar că eroarea există încă. Ultima linie este greșită. Deci, alergăm ‘ git bisectează rău ’. Există încă un commit greșit și conținutul actual nu este acceptabil.
Conținutul de mai sus este corect și acceptabil.
Rulați „git log –oneline” și „git bisect good”.
Asa ca A cincea schimbare a fost primul comit rău și cu adevărat așa. Eroarea este identificată.
Conținutul actual ar trebui să fie în documentația finală.
Pe măsură ce este identificată comiterea necorespunzătoare, puteți informa dezvoltatorul să corecteze modificările care pot fi pentru a reseta capul la a patra modificare care a fost ultima comisie bună.
Alerga ' git bisect reset 'Pentru a încheia procesul.
Concluzie
În acest manual practic GitHub, am încercat să acoperim tot ce ar trebui să lucreze un dezvoltator, adică din punctul de vedere al controlului versiunilor și al urmăririi.
În primele trei tutoriale din seria GitHub am aflat despre activitățile de control al versiunilor, crearea de depozite, cerere de extragere, sucursale, recenzii de cod, organizații și echipe, furnizarea unui depozit, etichete, repere, probleme, panouri de proiect, wiki, versiuni, integrare cu Jira și unele comenzi Git utilizate în mod obișnuit pentru dezvoltatori.
Sperăm cu adevărat că toți dezvoltatorii vor găsi această abordare practică pentru GitHub și comenzile Git utile în proiectele lor.
=> Citiți seria Easy GitHub Training.
Lectură recomandată
- Tutorial de integrare GitLab Jira
- Comenzi Unix: Comenzi Unix de bază și avansate cu exemple
- Integrarea seleniului cu GitHub folosind Eclipse
- Tutorial de integrare JIRA și SVN
- Git vs GitHub: Explorați diferențele cu exemple
- Tutorial Castravete Seleniu: Integrare Castravete Java Seleniu WebDriver
- Tutorial GitHub pentru dezvoltatori | Cum se folosește GitHub
- Tutorial Unix Pipes: Pipe în programarea Unix