advanced git commands
Ovaj vodič istražuje korisne Git naredbe kao što su Git Stash, Git Reset, Git Cherry Pick, Git Bisect i objašnjava kako integrirati GitHub s Jirom:
U našim prethodnim vodičima u ovoj seriji vidjeli smo većinu značajki GitHub-a.
U ovom uputstvu pogledat ćemo sljedeće:
- Izrada izdanja
- Integracija s Atlassian Jira
- Najčešće korištene Git naredbe za programere
- Git Stash
- Git Cherry Pick
- Vraćanje Gita
- Git Bisect
=> Ovdje pogledajte vodič za GitHub.
pitanja i odgovori na internetski intervju za programere
Što ćete naučiti:
- Izrada izdanja
- GitHub integracija s Jirom
- Napredne Git naredbe za programere
- Zaključak
- Preporučena literatura
Izrada izdanja
Izdanja u GitHubu koriste se za grupiranje vašeg softvera, dodavanje napomena o izdanju i binarnih datoteka (WAR, EAR, JAR datoteke) kako bi ih korisnici i ljudi mogli koristiti.
Da biste stvorili izdanje, idite na glavnu stranicu spremišta i kliknite na Izdanja kartica ispod Upravljanje temama.
Kliknite na Stvorite novo izdanje.
Navedite oznaku i naslov izdanja. Binarne datoteke također su dodane u izdanje. Nakon završetka kliknite na Objavi izdanje.
Izdanje je sada spremno s izvornim kodom i binarnim datotekama.
GitHub integracija s Jirom
Jedan od važnih aspekata sljedivosti jest referenciranje problema Jira s obvezama u GitHubu. GitHub se može integrirati s Jirom, ne samo radi referenciranja na problem, već i radi stvaranja grana i zahtjeva za povlačenje iz Jira-e.
Dakle, tipično, kad programer počne raditi na zadatku ili greškama, on kreira granu. Objavite razvoj ili rješavanje grešaka, iz Jire se može stvoriti zahtjev za povlačenjem za spajanje s glavnim ovladati; majstorski podružnica. Tada se grana koju je stvorio programer može izbrisati.
Za postavljanje integracije koristili smo dodatak Git integracija za Jira. Ovo je komercijalni dodatak. Dodatak se može preuzeti s ovdje
Instalirajte dodatak u Jira sa Administrator -> Dodaci.
Nakon što je dodatak instaliran, idite na Aplikacija -> Git spremišta i povežite se s GitHubom.
Unesite korisničko ime i lozinku za GitHub. Klik Spojiti .
Prikazat će se spremišta spomenuta za korisnički račun. Kliknite na Uvezi spremišta da biste dovršili postavljanje integracije.
GitHub se obvezao na izdanje Jira
Kao dio poruke urezivanja unesite kako je prikazano dolje. Kliknite na Obvežite promjene .
Primjer 1: Ispod je primjer Pametno počiniti što programerima omogućuje izvođenje radnji na problemima Jira iz poruke urezivanja. Jedna od takvih naredbi je #komentar zajedno s ključem Issue koji dodaje komentar na pitanje Jira, kao što je prikazano u nastavku.
Ažuriran je odjeljak komentara.
Primjer 2: Dodijelite korisniku i ažurirajte vrijeme provedeno kao 4 h.
Koristiti #dodijeliti i #vrijeme naredba pametnog urezivanja u poruci urezivanja.
Obje akcije su dovršene.
Primjer 3: Promijenite status izdanja u U nastajanju .
Stvorite granu
Kako se zadaci i programske pogreške dodjeljuju programerima, oni moraju početi raditi na razvoju. Za to stvaraju podružnicu za problem na kojem rade, rade razvojne aktivnosti i podižu zahtjev za povlačenjem za spajanje u glavnu podružnicu.
U izdanju Jira na dnu kliknite na Stvaranje grane.
Kliknite na Stvaranje grane.
U GitHubu napravite promjenu u datoteci u gore stvorenoj grani i počnite istu.
Kako je razvoj završen, korisnik tada od Jire može podići zahtjev za povlačenjem.
Na dnu izdanja kliknite na Stvori zahtjev za povlačenjem.
Kliknite na Stvoriti. Zahtjev za povlačenjem bit će prikazan kao otvoren.
Sljedeći je korak spajanje zahtjeva za povlačenjem u GitHub.
Status se u skladu s tim ažurira u Jiri.
Napredne Git naredbe za programere
U ovom posljednjem odjeljku pogledat ćemo neke od najčešće korištenih Git naredbi za programere. To nema nikakve veze s GitHubom, ali će pomoći programerima prije nego što uguraju promjene na GitHub.
Git Stash
U većini projektnih scenarija kada radite na novoj značajci ili poboljšanju, odjednom bi se pojavila potreba da radite na hitnoj neispravnosti koja je prijavljena i predstavlja zaustavni program. Kako ste na pola svog novog posla, a niste ga dovršili, nema smisla počiniti promjene koje su napola gotove.
Dakle, bolje je privremeno zaustaviti ili spremiti napola odrađeni posao, poraditi na programskoj pogrešci i vratiti se na rad na novoj značajci ili poboljšanju. Git stash nudi rješenje za to. Možete jednostavno prebaciti kontekst brzog izvršavanja promjena.
Primjer 1 :Pretpostavimo da radite na zadatku koji vam je dodijeljen i kad pogledate status, on pokazuje da od sada nije praćen.
Odjednom vam je dodijeljena greška visokog prioriteta. Stoga moramo privremeno spremiti ili sakriti posao na kojem se trenutno radi.
Pokrenite sljedeću naredbu.
git skrivanje spremi “Poruku”
Trenutno je radni direktorij čist. Mogu se izvršiti bilo kakve nove obveze, a ako postoje bugovi, možete prebaciti granu da radi na njoj itd.
Kada želite ponovno primijeniti promjene tamo gdje ste ostavili, upotrijebite naredbu.
git stash pop
Gornja naredba uklonit će zalihu sa popisa i primijenit će posljednje spremljeno stanje.
Također možete koristiti:
primijeniti git stash
Gornja naredba zadržat će promjene u spremniku i neće ih ukloniti.
Sada su promjene ponovno primijenjene i možete ih izvršiti.
Primjer 2: Spremite promjene, prebacite granu i spojite promjene.
Izmijenite datoteku Html u ovladati; majstorski promjene grana i zaliha.
Sljedeće je prebacivanje na buba podružnica, unesite promjene i izvršite promjene.
git checkout -b bug
Izmijenite Html datoteku.
git commit -a -m “Fiksni problem s e-poštom”
Vratite se na ovladati; majstorski razgranati i ponovo primijeniti promjene iz zalihe.
Sada spojite s buba grana do ovladati; majstorski podružnica. Obvežite promjene nakon spajanja.
Primjer 3: Rad s višestrukim spremnicima.
U lokalnom repo-u postoje 2 HTML datoteke. Dakle, moguće je da bi više programera radilo na više datoteka i skrivalo promjene po potrebi kako bi radili na hitnim zahtjevima koji nađu na putu da poprave promjene.
Developer 1 radi na hello.html, a Developer 2 radi na index.html.
Programer 1
Popis skladišta sada ima 1 unos.
Programer 2
Popis spremnika sada ima 2 unosa. Najnovije skrivanje prvo je u skupu koji je stash @ {0}. Sada oba programera mogu hitno izvršiti bilo koje druge obveze ili raditi na nekoj drugoj grani, a zatim se vratiti na ovladati; majstorski podružnica i primijenite promjene zalihe.
Da biste primijenili najnovije skrivanje, možete samo pokrenuti
git stash pop
Da biste primijenili određeno skrivanje u stogu, pokrenite sljedeću naredbu.
git stash pop stash @ {1}
Primijenimo drugu zalihu koja je skrivanje @ {1}
Slično tome, može se primijeniti i drugi spremnik.
Git Cherry Pick
Danas programeri rade na više grana poput značajki, poboljšanja, grešaka itd.
Postoje situacije u kojima treba odabrati samo nekoliko specifičnih predavanja, a ne spajati cijelu granu u drugu granu. To se naziva Cherry Pick. Ovaj vam postupak omogućuje proizvoljno odabir bilo kojeg Git ureza iz ostalih grana i njegovo dodavanje trenutnoj GLAVI radnog stabla.
Primjer 1:
U lokalnom git spremištu imamo sljedećih 6 datoteka.
Jedna datoteka se briše recimo file5.txt.
Obvežite promjene.
Pogledajte sada dnevnik. File5.txt se briše.
Dakle, želimo Cherry-Pick urezati gdje smo dodali file5.txt. Moramo pronaći id urezivanja file5.tx i pokrenuti naredbu.
git cherry-pick
U ovom slučaju, id urezivanja kada je dodan file5.txt je a2f0124
File5.txt je sada obnovljen. Mi smo odabrali obvezu.
Primjer 2:
Samo modificirajmo file6.txt i izvršiti promjene u ovladati; majstorski podružnica.
Pogledajte drugi redak u file6.txt gdje adresa e-pošte nije točno navedena.
Stvorite granu greške i riješite problem. Istodobno izmijenite i datoteku file5.txt tako da imamo više zaveza izvršenih u grani bugova, ali će Cherry-Pick odabrati samo urezivanje izvršeno u datoteci6.txt.
Datoteka 6 izmijenjena u buba podružnica.
Dakle, sveukupno smo unijeli promjene u datoteka5 i datoteka6 u ogranku Bug.
Vratimo se sada na ovladati; majstorski grana i Cherry-Pick urezivanje izvršeno samo za datoteku6.txt.
Kao što vidite, umjesto spajanja buba grana u ovladati; majstorski podružnice, upravo smo Cherry-Picked samo određeni predali i primijenili u glavnoj podružnici.
Vraćanje Gita
Git reset je snažna naredba za poništavanje lokalnih promjena. Dakle, za uklanjanje pozornice koriste se sve stupnjevane datoteke pomoću ove naredbe.
Primjer
Izmijenite datoteku i dodajte je na inscenaciju. Resetirajte pomoću naredbe kao što je prikazano kad su stupnjevite promjene odstupljene.
Parametri git resetiranje naredba.
–Meka: Ovaj će parametar uputiti HEAD na drugi urezivanje. Sve se datoteke mijenjaju između izvorne HEAD i urezivanje će se izvesti na pozornici. Radni direktorij je netaknut.
Pogledajte trenutno mjesto HEAD.
Vratimo se 5 obveza u povijesti.
Ponovno predajte promjene.
–Miks: Opcija je slična parametru soft. Obično, kada postoje neke loše obveze, uklonite ih, popravite kasnije i vratite natrag. Dakle, u osnovi moramo dodati indeks pomoću git dodaj i onda git počiniti. Promjene su ostavljene na radnom stablu.
Vratimo se 2 predavanja u povijest i vidjet ćemo da datoteke nisu praćene.
Sada dodajte datoteke na inscenaciju i unesite promjene.
–Tvrd: Ovaj će se parametar zaustaviti do točke u kojoj je postojala određena datoteka. Promjene neće biti dostupne u radnom stablu.
Gledajući gornji zapisnik vraćamo se na točku u kojoj je uređena samo datoteka 1, tj. Zadnji unos.
Koristeći git reset –tvrd
Git Bisect
Pronađite točan zapis koji je prekršio kôd (Napokon smo svi ljudi). Tijekom testiranja aplikacije često čujemo od naših testera da postoji greška ili je značajka oštećena, a vi kao programer reći ćete da je radila prošli tjedan. Pa, što se dogodilo i zašto se pojavila ova greška?
Ponekad je promjena drugog koda mogla utjecati na vašu značajku. Morate provesti vrijeme prolazeći kroz povijest gdje ima puno predaja koji oduzimaju puno vremena i teško je pratiti zbog koje je promjene kôd pukao.
Git Bisect je naredba za pronalaženje točnog urezivanja kada je bug uveden. S Git bisectom morate odabrati dva predavanja, jedan dobar i jedan loš. Otkazat će se otprilike na pola puta između oba urezivanja. Provjeravate svaki prijelaz ili loš ili dobar dok se ne pronađe urezivanje koje je uzrokovalo lomljenje programske pogreške ili koda.
Primjer:
- Stvorite novo lokalno git spremište i stvorite datoteku nazvanu index.html
- Početni sadržaj datoteke kao što je prikazano.
- Dodaj u uprizorenje i predaj se spremištu.
- Stvorite povijest obaveza kako je prikazano kako bismo mogli birati između dobrih i loših obveza. Sada, kad je početno urezivanje završeno, napravite ostale promjene kao što je prikazano i počnite isto. Sveukupno ćemo napraviti 7 predavanja.
Druga promjena
Treća promjena
Četvrta promjena
Peta promjena
Šesta promjena
Sedma promjena
Zaustavimo se ovdje. Dakle, imamo sedam obveza.
Ako pogledate stranicu Html, retci iza 'Sva 4 događaja ...' pogrešni su i stoga dokumentacija nije točna. Dakle, moramo pronaći urezivanje tamo gdje je pogreška uvedena kako bismo mogli nasloniti glavu na taj popravak.
Pogledajmo dnevnik i saznajmo loše i dobro se obvezati.
Najnoviji predaj nije u redu, tako da može biti loš. Obrezivanje je uvedeno nakon trećeg urezivanja, tako da možemo imati Treća promjena kao dobro počiniti.
Proces dijeljenja na dvoje započinje s git bisect start a završava sa git bisect reset.
git bisect bad // Budući da je posljednje urezivanje loše. Nije potrebno navesti ID urezivanja.
git bisect dobro
Sada možete vidjeti da je GLAVA sada između polovice lošeg i dobrog počinjenja.
Pogledajte sadržaj index.html i pogledajte ima li dobrog urezivanja. Ako nije, tada pogreška još uvijek nije pronađena.
Nije zapravo da pogreška još uvijek postoji. Posljednji redak je pogrešan. Dakle, pokrećemo git bisect bad '. Još uvijek postoji loša predaja i trenutni sadržaj nije prihvatljiv.
Gornji sadržaj je točan i prihvatljiv.
Pokrenite 'git log –oneline' i 'git bisect good'.
Dakle, Peta promjena je bila prva loša obveza i zaista tako. Pogreška je identificirana.
Trenutni sadržaj trebao bi biti u završnoj dokumentaciji.
Kako se utvrdi loše urezivanje, možete obavijestiti razvojnog programera da ispravi promjene koje bi mogle biti vraćanje glave na četvrtu promjenu koja je bila posljednja dobra urezivanja.
Trčanje ' git bisect reset ’Da biste okončali postupak.
Zaključak
U ovom praktičnom priručniku za GitHub pokušali smo obuhvatiti sve ono na čemu bi programer trebao raditi, tj. S gledišta kontrole verzija i praćenja.
U prva tri vodiča iz GitHub serije naučili smo o aktivnostima kontrole verzija, stvaranju spremišta, zahtjevu za povlačenjem, granama, pregledima koda, organizacijama i timovima, račvanju spremišta, oznakama, prekretnicama, problemima, projektnim pločama, wikijima, izdanjima, integraciji s Jirom i nekim najčešće korištenim Git naredbama za programere.
Iskreno se nadamo da će svim programerima ovaj praktični pristup za GitHub i naredbe Git biti koristan u njihovim projektima.
=> Pročitajte seriju Easy GitHub Training.
Preporučena literatura
- Vodič za integraciju GitLab Jira
- Unix naredbe: osnovne i napredne Unix naredbe s primjerima
- Integracija selena s GitHubom pomoću Eclipsea
- Vodič za integraciju JIRA-e i SVN-a
- Git vs GitHub: Istražite razlike na primjerima
- Vodič za krastavac selenij: Integracija Java Selenium WebDriver krastavaca
- Vodič za programere za GitHub | Kako koristiti GitHub
- Vodič za cijevi za Unix: Cijevi za programiranje u Unixu