„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ę“ master
filiale 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ą. master
Filialas visada numatytasis filialas saugykloje, kuri yra dažniausiai laikoma "gamyba ir mobiliosioms kodas". Naujos šakos patinka passwordless-auth
arba refactor-signup-ux
gali būti sukurtos iš master
šakos.

Kaip klonuoti Git filialus
Nors galite klonuoti saugyklas naudodami git clone
komandą, nepamirškite, kad tai klonuoja šaką ir nuotolinio valdymo pultą HEAD
. Paprastai tai yra master
pagal numatytuosius nustatymus ir į saugyklą įtraukiami visi kiti filialai.
Taigi, kai klonuojate saugyklą, klonuojate master
ir 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-auth
filiale.
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/api
esantis 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.
master
Filialas turi failų Puslapiai / API / hello.js o passwordless-auth
turi 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/master
tai yra originalus master
filialas internete ir master
jū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 push
ir 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-auth
kaip 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-branch
parinktis 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-auth
kaip vietinis filialas ir stebi tik šį filialą.


Jei paleisite cd pages/api
, auth.js
failą rasite passwordless-auth
filiale, 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? ✌?