Kako se prebaciti između problema u vašem lokalnom Git spremištu

Tijekom putovanja do otvorenog koda naišao sam na jednostavnu (a opet nezgodnu) situaciju koja vas može spotaknuti ako pogriješite. I o tome ćemo razgovarati u ovom članku.

Sudjelovanje u zajednici otvorenog koda znači da doprinosite razvoju besplatnog softvera ili softvera otvorenog koda. Mnogo je organizacija koje su uvijek dobrodošle suradnicima u svojim bazama kodova.

Da biste započeli s otvorenim kodom, morate imati osnovno razumijevanje alata za kontrolu verzija kao što je Git. Suradnici koriste Git za praćenje promjena u projektnim datotekama, a također pomaže ljudima da koordiniraju svoj rad na tim datotekama.

Preduvjeti

  1. Neka Git bude instaliran
  2. Imati osnovno razumijevanje Gita

Zašto problemi?

Problemi u spremištu mogu se koristiti za praćenje zadataka, ideja, grešaka ili poboljšanja za projekt na kojem radite. U osnovi, oni vam daju opis onoga što zadatak uključuje.

Da bi pokrenuli problem, administratori projekta trebaju vam dodijeliti taj problem. Tako će drugi članovi tima znati da netko radi na tom pitanju.

Rad na izdanju

Da biste započeli rad na problemu, trebate napraviti klon ili kopiju ciljnog spremišta pomoću naredbe Git clone na vašem lokalnom računalu.

git clone 

Stvorite upstream koji vam omogućuje praćenje najnovijih promjena u upstreamu (tj. Izvornom spremištu). Na ovaj način Git vas obavještava o promjenama kako biste mogli ažurirati klonirano spremište.

git remote add upstream  

Da biste pregledali popis dostupnih daljinskih upravljača i zadataka koji se mogu izvršiti (dohvat i guranje), upišite:

git remote -v

Da biste bili u toku s najnovijim promjenama, uvijek trebate pokušati dohvatiti podatke uzvodno. Na ovaj način dobivate sve obveze od svakog člana tima koji je također radio na raznim značajkama.

git fetch /

Krećući se naprijed, morat ćete spojiti predaje ostalih suradnika u lokalno spremište.

git merge / 

Cilj Git merge je učiniti da se lokalna kopija glavne grane podudara potpuno s onom koja se nalazi uzvodno od glavne grane.

Zatim stvorite granu za izdanje koje vam je dodijeljeno. Zašto morate stvoriti granu? A čemu služi grana? Istražimo dalje.

Git grana

Podružnica vam daje snimku izvršenih promjena. Kada se izvrši urezivanje, Git pohranjuje podatke iz urezivanja. Ovo pruža pokazivač koji se kasnije može koristiti za upućivanje ili praćenje izvršenih promjena. Zbog toga je korisno stvoriti granu kada radite na novom zadatku, ispravku programske pogreške ili bilo kojoj drugoj značajci.

Kad započnemo, Git nam pruža glavnu granu. Glavna grana sadrži radni kod. Da biste izbjegli miješanje promjena s produkcijskim kodom, morate stvoriti novu granu.

Da biste stvorili granu, morate unijeti sljedeću Git naredbu:

git checkout -b 

Ova naredba stvara novu granu na temelju trenutne grane, iako također možete odrediti granu u kojoj želite stvoriti novu granu.

git checkout -b   

Da biste popisali sve dostupne grane u vašem spremištu, upišite:

git branch

Kada je zadatak na kojem radite dovršen, pritisnite promjene na lokalnom spremištu na pregled. Nakon toga izradite zahtjev za povlačenjem da obavijestite administratore projekata o trenutnom stanju dodijeljenog zadatka.

git push -u origin  

Kako se sada prebaciti na rad na sljedećem izdanju?  

Stvorite drugu granu s opisnim imenom, poput ove:

git checkout -b   

Jednom kada imamo svoju podružnicu, koristit ćemo naredbu uslužnog programa iz čvorišta. Naredba će nam pomoći da dohvatimo kôd s gornje strane, a također će pokrenuti spajanje (ako instalirate uslužni program hub).

hub sync

Naredba dohvaća promjene uzvodno i spaja ih s novostvorenom granom. Uvijek možete provjeriti promjene s vašom podružnicom i uzvodno pomoću naredbe Git status:

git status

Sada možete nastaviti i raditi na novoj grani. Sjetite se samo izvršiti promjene i gurnuti u udaljenu granu kao što smo to učinili gore.

Greške koje biste mogli napraviti.

Možete pogriješiti dok radite na više problema - što može dovesti do brisanja predavanja iz podružnice.

Evo primjera koraka za brisanje neželjenih predavanja iz grane:

Korak 1: Prebacite se na granu u kojoj želite ukloniti neželjene obveze:

git checkout  

Korak 2: Pokrenite evidenciju izvršenih obveza u poslovnici. To će vam pomoći da odlučite koje predaje želite zadržati na temelju jedinstvenog Hash-a predavanja (SHA1 40 znakova kontrolne sume sadržaja predavanja ) obično u ovom obliku: da034f6ff3e856b5ba155bc01def0847a1c4ed7e .

git log

Također je vrijedno napomenuti da ako želite zadržati najnoviji predaj (recimo zadnji na), možete jednostavno to učiniti:

git log -n 1

Korak 3: Budući da želite odbaciti sve ostale obveze na toj grani, jednostavno primijenite taj jedan predaj na granu. Odbacivanje i primjena su dva koraka:

Prvo odbacite sve obveze na grani s:

git reset --hard / 

Jednostavno rečeno, gornja naredba govori Gitu da baci sve fazne i nescenirane promjene. Zaboravit će sve na trenutnoj lokalnoj grani i učiniti ga potpuno istim kao i upstream/master.

Drugo, primijenite taj jedan jedini predaj na granu naredbom:

git cherry-pick Hash //where Hash is a commit hash from other branch

Ova naredba odabire jednu referencu (tj. Predaje) prema zadanim postavkama iz grane i primjenjuje je na drugu.

Korak 4: Kada pokrenete git status, izvijestit će da se vaša grana /razišla. Budući da se to očekuje, moramo prisiliti daljinski upravljač da sadrži samo one promjene koje smo izabrali.

Da bismo to učinili, trebamo upotrijebiti naredbu koja će pomoći izbrisati udaljenu povijest i zamijeniti je drugom poviješću:

git push --force origin

Ova će naredba odbaciti dodatne ureze na daljinskom upravljaču, baš kao što smo odbacili i dodatne predaje na lokalnoj kopiji. To je opasno jer je to jedna od rijetkih git naredbi koja će nešto odbaciti - zato budite oprezni kada je koristite.

Sada kada ga pokrenete git status, izvještava da je grana ažurirana /. To vam pokazuje da je operacija uspješno izvedena.

Hvala na čitanju ?! Veliki uzvik za Marka Waitea?  

Slijedite me na Twitteru.