„Git Clone“ filialas - kaip klonuoti konkretų filialą

Skirtingai nuo senesnių centralizuotų versijų valdymo sistemų, tokių kaip SVN ir CVS, „Git“ yra platinamas. Kiekvienas kūrėjas turi visą savo kodo istoriją ir valdymą vietoje arba nuotoliniu būdu. Jie taip pat gali pasiekti arba manipuliuoti keliomis kodo dalimis, kaip jie mano esant tinkami iš skirtingų vietų.

Kadangi Linusas Torvaldsas (garsus „Linux“ operacinės sistemos branduolio kūrėjas) 2005 m. Sukūrė „Git“, skirtą „Linux“ branduoliui kurti, jis tapo plačiausiai naudojama šiuolaikine versijų valdymo sistema pasaulyje.

Šiame straipsnyje aš supažindinsiu jus su „Git“ klono ir „Git“ šakos darbo eigomis ir parodysiu, kaip galite klonuoti konkrečią šaką pagal savo poreikius. Pradėkime! ?

Būtinos sąlygos

  • Pagrindinės žinios apie terminalą
  • Galimybė įvesti komandas terminale
  • Įdiegta „Git“ (aš vis tiek jums parodysiu, kaip)
  • „GitHub“ paskyra
  • Šypsena veide (Įdėk tą šypsenos draugą?)

Greitas „Git“ ir „GitHub“ įvadas

Pagal Vikipediją,

„Git“ yra paskirstyta versijų valdymo sistema, skirta stebėti projekto (kodo) pokyčius kuriant programinę įrangą. Jis skirtas užtikrinti koordinatorių bendradarbiavimą, bendradarbiavimą, greitį ir efektyvumą tarp kūrėjų.

Kita vertus, „ GitHub“ yra žiniatinklio prieglobos paslauga, skirta valdyti versijas naudojant „Git“. Jis siūlo visas „Git“ paskirstytos versijos valdymo ir šaltinio kodo valdymo funkcijas, taip pat prideda daugiau kompiuterio kodo funkcijų.

Kaip įdiegti „Git“ sistemoje „Windows“

Atsisiųskite ir įdiekite naujausią „Git for Windows Installer“ čia.

Kaip įdiegti „Git“ sistemoje „Linux“

Čia pateikiamos komandos, pagrįstos jūsų „Linux“ platintoju:

„Debian“ arba „Ubuntu“

sudo apt-get update sudo apt-get install git

Fedora

sudo dnf install git

CentOS

sudo yum install git

„Arch Linux“

sudo pacman -Sy git

„Gentoo“

sudo emerge --ask --verbose dev-vcs/git

Kaip įdiegti „Git“ „Mac“

Atsisiųskite ir įdiekite naujausią „Git for Mac“ diegimo programą čia.

Arba galite įvesti šią komandą:

brew install git

Dabar, kai jau įdiegėme „Git“, pereikime prie mokymo programos.

„Git Clone“ įvadas

„Git“ leidžia valdyti ir versijoti savo projektą (-us) „saugykloje“. Ši saugykla saugoma žiniatinklio prieglobos tarnyboje, skirtoje valdyti versijas, pvz., „GitHub“.

Tada galite klonuoti šią saugyklą savo vietiniame kompiuteryje ir turėti visus failus bei filialus vietoje (netrukus paaiškinsiu daugiau apie filialus).

Pavyzdžiui, galite klonuoti „freeCodeCamp“ saugyklą naudodami SSH:

git clone [email protected]:freeCodeCamp/freeCodeCamp.git

Įvadas į „Git“ filialus

Dirbdami prie projekto, tikriausiai turėsite skirtingų savybių. Prie šio projekto ir jo funkcijų dirbs keli dalyviai.

Filialai leidžia jums sukurti „žaidimų aikštelę“ masterfiliale su tais pačiais failais . Šią šaką galite naudoti kurdami nepriklausomas funkcijas, išbandydami naujas funkcijas, keisdami pakeitimus, kurdami pataisas, rašydami dokumentus ar išbandydami idėjas, nepažeisdami ir nepaveikdami gamybos kodo. Baigę sujungsite šaką į gamybos masteršaką.

Šakojimas yra pagrindinė „Git“ koncepcija, kuri taip pat naudojama „GitHub“ valdant skirtingų vieno projekto versijų darbo eigą. masterFilialas visada numatytasis filialas saugykloje, kuri yra dažniausiai laikoma "gamyba ir mobiliosioms kodas". Naujos šakos patinka passwordless-autharba refactor-signup-uxgali būti sukurtos iš masteršakos.

Kaip klonuoti Git filialus

Nors galite klonuoti saugyklas naudodami git clonekomandą, nepamirškite, kad tai klonuoja šaką ir nuotolinio valdymo pultą HEAD. Paprastai tai yra masterpagal numatytuosius nustatymus ir į saugyklą įtraukiami visi kiti filialai.

Taigi, kai klonuojate saugyklą, klonuojate masterir visas kitas šakas. Tai reiškia, kad turėsite patys išsiregistruoti iš kito filialo.

Tarkime, kad jūsų užduotis projektui yra dirbti su funkcija, kad prie vartotojo informacijos suvestinės būtų galima pridėti autentifikavimą be slaptažodžių. Ir ši funkcija yra passwordless-authfiliale.

masterŠakos jums tikrai nereikia, nes vėliau jūsų „funkcijų šaka“ bus sujungta master. Kaip tada klonuoti šią passwordless-authšaką, negaunant visų kitų šakų su „krūva nereikalingų failų“?

Aš sukūriau šį pavyzdinį saugyklą tam paaiškinti. Šioje saugykloje yra paprastas tinklaraštis, sukurtas kartu su „Nextjs“, ir turi keturias manekeno šakas:

  • meistras
  • dev
  • inscenizacija
  • slaptažodis-aut

„Nextjs“ bet kuris aplanke pages/apiesantis failas yra susietas su /api/*keliu ir bus traktuojamas kaip API galinis taškas, o ne page. Mūsų saugykloje šiame kataloge sukūriau skirtingas manekeno API, kad kiekvienas filialas būtų skirtingas.

masterFilialas turi failų Puslapiai / API / hello.js o passwordless-authturi failo puslapius / API / auth.js . Kiekvienas failas tiesiog pateikia manekeno atsakymą. Žiūrėkite master„Sveiki“ API atsakymą čia (su specialiu pranešimu jums?).

Klonuokime saugyklą:

git clone [email protected]:BolajiAyodeji/nextjs-blog.git

Tai suteikia mums prieigą prie visų šios saugyklos filialų ir galite lengvai perjungti kiekvieną, kad pamatytumėte kiekvieną versiją ir jos failus.

git branch -a

Įdomu, iš kur atsirado pulteliai / kilmė / .. šakos?

Klonuodami saugyklą, jūs traukiate duomenis iš saugyklos internete arba vidinio serverio, vadinamo nuotoliniu būdu . Žodis origin yra slapyvardis, kurį sukūrė jūsų „Git“, kad pakeistų nuotolinį URL (jei norite, galite pakeisti arba nurodyti kitą slapyvardį).

Šie nuotolinio valdymo pultai / kilmės / .. nukreipia jus atgal į kilmės saugyklą, kurią klonavote iš interneto, kad vis tiek galėtumėte atlikti traukimą / stūmimą iš kilmės.

Taigi, kai klonuojate masterį savo mašiną, remotes/origin/mastertai yra originalus masterfilialas internete ir masterjūsų vietinėje mašinoje. Taigi jūs traukite / stumsite iš ir į remotes/origin/master.

Apibendrinant nuotolinis yra URL, nukreipiantis jus į saugyklą internete, o „ Origin“ yra šio nuotolinio URL pseudonimas.

Kaip klonuoti konkretų filialą

Dabar klonuokime konkretų filialą iš savo demonstracinės talpyklos. Konkrečią šaką galima klonuoti dviem būdais. Galite:

  • Klonuokite saugyklą, paimkite visus filialus ir nedelsdami atsiskaitykite prie konkretaus filialo.
  • Klonuokite saugyklą ir paimkite tik vieną šaką.

Pirmasis variantas

git clone --branch  

arba

git clone -b  

Atsiimdami visus saugykloje esančius filialus, atlikite mokėjimą prie nurodytos, o konkretus filialas tampa sukonfigūruotu vietiniu filialu git pushir git pull. Bet jūs vis tiek atnešote visus failus iš kiekvieno filialo. Tai gali būti ne tai, ko norite teisingai? ?

Išbandykime:

 git clone -b passwordless-auth [email protected]:BolajiAyodeji/nextjs-blog.git

Tai automatiškai sukonfigūruojama passwordless-authkaip vietinis padalinys, bet vis tiek stebimi kiti filialai.

Antras variantas

git clone --branch  --single-branch 

arba

git clone -b  --single-branch 

Tai atlieka tą patį veiksmą kaip ir pirmasis variantas, išskyrus tai, kad ši --single-branchparinktis buvo pristatyta „Git“ versijoje 1.7.10 ir vėlesnėse versijose. Tai leidžia jums gauti failus tik iš nurodytos šakos, negaunant kitų šakų.

Išbandykime:

git clone -b passwordless-auth --single-branch [email protected]:BolajiAyodeji/nextjs-blog.git

Tai automatiškai konfigūruojama passwordless-authkaip vietinis filialas ir stebi tik šį filialą.

Jei paleisite cd pages/api, auth.jsfailą rasite passwordless-authfiliale, kaip tikėtasi iš ankstesnės sąrankos.

Išvada

Jums gali trūkti interneto ar saugyklos vietos, tačiau turite dirbti su užduotimi konkrečiame filiale. Arba dėl įvairių priežasčių galbūt norėsite klonuoti tam tikrą šaką su ribotais failais. Laimei, „Git“ suteikia jums lankstumo tai padaryti. Palenkite raumenis ir išbandykite, yra daug daugiau „Git“, kurių reikia išmokti.

Po vieną, taip? ✌?