Haarojen käsittely Gitissä ja GitHubissa

Aiemmissa git-versionhallintaohjelmiston opetusohjelmissamme opimme tärkeimmät peruskomennot gitin, kuten ja kuinka työskennellä Github.com-sivuston kanssa varaston perustamiseksi ja projektikoodin siirtämiseksi verkkosivustolle.

Nyt on aika aloittaa tosiasiallinen työskentely GitHubin (ja gitin) kanssa tavalla, jolla heidän on tarkoitus olla käytetty: projektin muutosten tekeminen turvallisesti toiselle puolelle ja sulauttaminen takaisin alkuperäiseen projektiin, kun ne ovat osoittautuneet oikeiksi. Tai ainakaan ei tuhoisa.

Nyt ymmärrät, että git tallentaa projektisi jokaisen version pikakuvana koodista juuri sellaisena kuin se oli sillä hetkellä, kun teit sen. Pohjimmiltaan projektin versioiden aikajanan luominen sen edetessä, jotta voit palata takaisin aiempaan versioon, jos katastrofi iskee.

Git ja GitHub hallitsevat tätä aikajanaa – varsinkin kun enemmän kuin yksi henkilö työskentelee projektissa ja tekee muutoksia – käyttämällä sivuliikkeitä. Haara on olennaisesti ainutlaatuinen joukko koodimuutoksia, joilla on yksilöllinen nimi. Jokaisessa arkistossa voi olla yksi tai useampi haara. Päähaara – se, jossa kaikki muutokset lopulta sulautuvat takaisin, ja sitä kutsutaan masteriksi. Tämä on projektisi virallinen työversio ja se, jonka näet, kun vierailet projektivarastossa osoitteessa github.com/yourname/projectname.

Älä sekoita isäntää. Jos teet muutoksia ryhmäprojektin päähaaraan samalla kun muut ihmiset työskentelevät sen parissa, lennon aikana tehdyt muutokset aaltoilevat vaikuttamaan kaikkiin muihin ja hyvin nopeasti syntyy yhdistämiskonflikteja, itkemistä, vaatteiden renderointia, ja heinäsirkkojen rutot. Se on niin vakavaa.

Miksi päällikkö on niin tärkeä, ettei hänen tarvitse sekaantua? Yksi sana: päähaara on käytettävissä. Se on tuotantokoodisi, valmis levittämään maailmaan. Päähaaran on tarkoitus olla vakaa, ja avoimen lähdekoodin ohjelmistojen sosiaalinen sopimus on, ettei koskaan, koskaan työnnä mitään hallittavaa, jota ei ole testattu tai joka rikkoo rakennetta. GitHub toimii vain siksi, että on aina turvallista työskennellä päälliköltä.

Haarautuminen

Sen sijaan kaikki käyttävät masterista luotuja haaroja kokeiluun, muokkauksiin, lisäyksiin ja muutoksiin. , ennen kuin lopulta tuo oksa takaisin päälliköksi, kun ne on hyväksytty ja niiden tiedetään toimivan. Tämän jälkeen Master päivitetään sisältämään kaikki uudet asiat.

Voit aloittaa projektin uuden työn tai muuttaa olemassa olevia asioita luomalla haaran vakaasta päähaarasta. Jatketaan työskentelyä edelliselle opetusohjelmallemme, good ol ’studious_octo_carnival, luotun malliprojektin kanssa. Avaa nyt tietokoneellasi oleva versio ja cd hakemistoon.

Vaihe 1: Tee luettelo.

Ennen uusien haarojen luomista haluamme tarkistaa mahdolliset muut haarat. . Tiedämme mestarista, mutta kuka tietää, mitä projektiyhteistyökumppanimme saattavat tehdä, noista ilkeistä apinoista? Joten voimme tarkastella kaikkia olemassa olevia haaroja kirjoittamalla ”git branch -a” terminaaliin, mikä kertoo gitille, että haluamme nähdä KAIKKI haarat tässä projektissa, myös ne, jotka eivät ole paikallisessa työtilassa.

Tämä palauttaa lähdön, jonka näet alla olevasta koodiesimerkistä. Sen ulkonäkö voi vaihdella jonkin verran käyttöjärjestelmästäsi ja päätelaitteestasi, mutta tiedot ovat viime kädessä samat. Tähti ”master” -kohdan vieressä lähdön ensimmäisellä rivillä osoittaa, että olemme tällä hetkellä tällä haaralla. Toinen rivi kertoo meille, että kauko-ohjaimellamme, nimeltään alkuperä, on yksi haara, jota kutsutaan myös masteriksi. (Muista, että kaukosäätimemme on GitHub-repo tälle projektille).

Vaihe 2: Luo uusi haara

Nyt kun tiedämme kuinka tarkastella haaroja, tehdään yksi! Pidä mielessä, että meillä on päähaara, alkuperäinen projekti. Aiomme nyt luoda uuden version projektista, haaran, jolla voi pelata ja tehdä muutoksia paikallisesti tietokoneellamme – vaikka projektin alkuperäinen versio, päällikkö, pysyy turvallisesti häiriöttömänä siellä GitHubissa. Annamme uudelle haaralle kuvaavan nimen muistuttamaan meitä siitä, mitä aiomme tehdä työskennellessämme siinä. Tässä tapauksessa se tulee olemaan yksinkertainen ”Hello World” juttu, joten kutsumme sitä hello_octo.

Luo uusi haara kirjoittamalla ”git checkout -b branchNameHere” (niin, meidän tapauksessamme, ”git checkout -b hello_octo”).

Olettaen, että kukaan muu ei ole jo tehnyt haaraa nimeltä ”hello_octo”, git palauttaa ”Vaihdettu uuteen haaraan” hello_octo ”.” (Jos haara tällä nimellä on jo olemassa, git kertoi meille sen sijaan ”kohtalokas: Haara nimeltä” hello_octo ”on jo olemassa.” Ei iso juttu, tee vain git checkout -b uudella nimimuutoksella).

Voimme myös käyttää git checkout -komentoa vaihtaaksemme edestakaisin kahden haaramme välillä. Kirjoita ”git checkout branchName” vaihtaaksesi kyseiseen haaraan.Joten ”git checkout master” vie sinut masteriin, kun taas ”git checkout hello_octo” vie sinut takaisin hello_octo-haaraan.

Jos yrität vaihtaa haaraan, jota ei ole olemassa, kuten ”git checkout hello_kitty”, git ilmoittaa, että ei ole mitään:

Mistä git tietää, millä haaralla olet tällä hetkellä? Git seuraa aina mitä teet ja pitää erityisen osoittimen nimeltä HEAD. Kuten kompassin neula osoittaa aina pohjoiseen, HEAD osoittaa aina paikallinen haara, jolla olet tällä hetkellä.

(Olisimme voineet luoda sivuliikkeen myös git-komennolla ”git branch branchName Here” ja siirtyä sitten siihen git-kassalla. Pieni pieni pikakuvake ”-b” ”git checkout -b branchNameHere” -ohjelmassa luo haaran JA vaihtaa siihen. En voi kertoa kuinka monta uutta git-kooderia tuottaa virheilmoituksia ja turhautumista, koska he eivät yksinkertaisesti ole muistaneet vaihtaa uuteen haaraansa i: n luomisen jälkeen t. Siksi pidämme kiinni git checkout -b: stä, mmmkay?)

Muutosten tekeminen työhaarallemme

Nyt kun meillä on useita haaroja – työhaaramme, johon voimme tehdä muutoksia, ja päähaaramme pysyy turvallisesti häiritsemättömänä – voimme päästä töihin. Skenaariossa käytämme ”hello_octo” -haaraamme muutosten tekemiseen ja testaamiseen ja työnnämme ne sitten takaisin GitHubin päähaaraan.

Muista varmistaa, että olet toimiva haara eikä päällikkö, vanhalla hyvällä git-haaralla -a.

Vaihe 3. Luo uusi tyhjä tiedosto nimeltä ”hello_octo_world”:

(Tämä tyhjä tiedosto on vain esittelytarkoituksiin, joten älä huoli siitä, että tiedostotunnisteen nimeä / tyyppiä ei ole).

Koska se on aivan uusi, oikea nyt tämä tiedosto on vain haarassasi. Käytä ”ls” -komentoa tarkastellaksesi sitä:

Muista kuitenkin, että olemme toimialalla hello_octo, missä Me loimme tämän uuden asian. Mestari ei tiedä mitään hello_octosta, koska se on turvallisesti eristetty kaikilta tahattomilta muutoksilta, joita teemme täällä työhaaralla. Se on edelleen sama rauhallisesti muuttumaton päällikkö, jonka kanssa aloitimme:

Vaihe 4: Vaihe 4: Järjestä uusi tiedosto tiedostoon toimivaan haaraan.

Nyt on aika vaiheittaa (lisätä) ja sitouttaa uusi tiedosto työhaaraan. (Kuulostaako tutulta?). Tämä liittää tämän uuden entiteetin työhaaraan valmistauduttaessa sen lopulliseen siirtämiseen päällikölle. Tämä tiedosto on nyt hello_octo-haarassa; kuten näimme yllä, sitä ei tällä hetkellä ole päähaarassa.

Tässä vaiheessa olet juuri ottanut tilannekuva haaran muutoksista. Todellisessa projektissa muutoksia ja työtä on todennäköisesti enemmän tullakseen tehdyksi. Nyt sinun pitäisi mennä tekemään tämä tekemällä sitoumuksia matkan varrella loogisissa pisteissä. Muista, että GitHubissa sitoumukset edustavat peräkkäisiä tallennuksiasi. Jokaisella sitoutumisella on siihen liittyvä sitoutumisviesti, joka on kuvaus, jossa selitetään nimenomaan mitä teit siellä ja miksi. Sitovat viestit sieppaavat muutoksesi historian, joten tulevat ja muut projektin avustajat ymmärtävät mitä olet tehnyt ja miksi.

Koodin yhdistäminen haarojen välillä

Kun olemme on vihdoin tehty kaikilla muutoksilla ja lisäyksillä – ja kaikki toimii * – on aika sulautua. Mielenkiintoinen osa tulee sen jälkeen, kun vaihdamme takaisin päähaarallemme (joka – sano se kanssani! – teemme ”git checkout master”: n kanssa). ”Hello_octo_world” näyttää puuttuvan, mutta se ei ole – tällä hetkellä se on olemassa työmme yhteydessä haara ja olemme päähaarallamme. Näytän tämän uudestaan, koska se on haarojen ymmärtämisen ydin gitissä:

Nyt: tässä harjoituksessa , ”hello_octo_world” edustaa mitä tahansa muutoksia mihin tahansa tiedostoon (tai kokonaan uuden tiedoston lisäämiseen), joka on läpäissyt kaikki testaukset kehityshaarallamme ja on valmis olemaan tuotannossa. Koodin siirtäminen haarojen välillä (usein kehityksestä toiseen) tuotantoa) kutsutaan sulautumiseksi.

Erittäin tärkeää: sulautuessamme meidän on oltava haaralla, johon haluamme sulautua. Periaatteessa sanomme gitille: ”Näetkö uuden asian? On hyvä tuoda se nyt tänne. ”

Vaihe 5: Yhdistä toimivan haaran muutokset

Tässä tapauksessa, koska haluamme sulautua työhaarastamme, jossa” hello_octo_world ” tiedosto on olemassa, meidän päähaarallemme on oltava päällikkö.

Kun päähaarassa on vain meidän on suoritettava yhdistämiskomento. Paras tapa tehdä tämä on kirjoittaa ” git merge –no-ff ”- ylimääräinen” –no-ff ”kertoo gitille, että haluamme säilyttää kaikki sitoutumisviestit ennen yhdistämistä. Tämä helpottaa muutosten seuraamista tulevaisuudessa:

Palaa GitHubiin

Viimeinen asia, joka meidän on nyt tehtävä, on ilmoittaa GitHubille, että olemme olleet apinoimassa hallita täällä paikallista kehitysympäristöämme.

Toisin sanoen on aika git pushille. Sait tämän!

Git-tulos vahvistaa, että sulautuminen kehityshaarastasi paikallisen ympäristön päähaaraan, on nyt kopioitu etäpalvelimelle: ”master → master”.

Ja siinä kaikki! Luimme onnistuneesti isännästä erillisen toimivan haaran. Teimme siihen muutoksia. Vaiheittaiset ja sitoutuneet muutokset. Sitten ne yhdistettiin takaisin paikallisen työympäristömme päällikölle. Sitten lopuksi työnnin kaiken GitHubiin, jotta projektimme kaikki versiot ovat samat kaikkialla!

Viimeinen huomautus

Siivousta on nyt kunnossa: koska hello_octo-haaramme on yhdistetty onnistuneesti, sitä ei enää tarvita. Jos haluat poistaa yhdistetyn haaran, kirjoita ”git branch -d branchName”:

Ei hätää: jos yrität vahingossa poistaa haaran, jota ei ole vielä yhdistetty, git heittää virheen.

Joten! Toistaiseksi olemme käyttäneet erittäin yksinkertaistettua näyteprojektia, koska tässä vaiheessa tärkeintä on ymmärtää ja omaksua git-työnkulku. Yhdistämisessä on paljon enemmän kuin tässä todellisessa maailmassa – esimerkiksi mitä tapahtuu, jos saat virheilmoituksia, koska yhdistämisessäsi on ristiriitoja? Ei hätää, uusi git-ster, pääsemme sinne.

Kotitehtäväsi: luo (”kosketa”) lisää uusia tiedostoja esimerkkiprojektissa ja harjoittele muutosten tekemistä, vaiheistamista, sitoutumista ja lopulta niiden yhdistämistä. Varmista, että ymmärrät, mihin pääsi osoittaa – eli mikä on nykyinen haarasi. Tee muutoksia vain työhaarallesi.

Muista: Älä. Mess. Kanssa. Mestari. .

Leave a Reply

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *