Za razliku od starijih centraliziranih sustava za kontrolu verzija kao što su SVN i CVS, Git se distribuira. Svaki programer ima punu povijest i kontrolu nad svojim kodom lokalno ili na daljinu. Oni također mogu pristupiti ili manipulirati nekoliko dijelova koda kako smatraju da odgovaraju s različitih lokacija.
Otkako je Linus Torvalds (poznati tvorac jezgre operativnog sustava Linux) 2005. godine stvorio Git za razvoj Linux jezgre, postao je najčešće korišten suvremeni sustav za kontrolu verzija na svijetu.
U ovom članku upoznat ću vas s tijekovima rada Git clona i Git grana i pokazati vam kako možete klonirati određenu granu na temelju svojih potreba. Započnimo! ?
Preduvjeti
- Osnovno znanje terminala
- Sposobnost tipkanja naredbi u terminalu
- Git instaliran (još ću vam pokazati kako)
- GitHub račun
- Osmijeh na licu (Staviti onog osmijeha prijatelja?)
Kratki uvod u Git i GitHub
Prema Wikipediji,
Git je distribuirani sustav kontrole verzija dizajniran za praćenje promjena na projektu (kodu) u razvoju softvera. Namijenjen je jačanju koordinacije, suradnje, brzine i učinkovitosti među programerima.GitHub je, s druge strane, web hosting usluga za kontrolu verzija pomoću Gita. Nudi sve distribuirane funkcije Gita za kontrolu verzija i upravljanje izvornim kodom, kao i dodavanje dodatnih značajki za računalni kod.
Kako instalirati Git na Windows
Ovdje preuzmite i instalirajte najnoviji Git za Windows Installer.
Kako instalirati Git na Linux
Evo naredbi koje se temelje na vašoj Linux distribuciji:
Debian ili 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
Kako instalirati Git na Mac
Ovdje preuzmite i instalirajte najnoviji instalacijski program Git za Mac.
Ili možete upisati ovu naredbu:
brew install git
Sad kad smo instalirali Git, prijeđimo na tutorial.
Uvod u Git Clone
Git vam omogućuje upravljanje i verziju projekata u "spremištu". Ovo spremište pohranjeno je na web usluzi hostinga za kontrolu verzija, poput GitHub-a.
Zatim možete klonirati ovo spremište na svoj lokalni stroj i imati sve datoteke i grane lokalno (uskoro ću objasniti više o granama).

Na primjer, možete klonirati spremište freeCodeCampa s SSH-om tako:
git clone [email protected]:freeCodeCamp/freeCodeCamp.git
Uvod u Git Branches
Kada radite na projektu, vjerojatno ćete imati različite značajke. Na ovom projektu i njegovim značajkama radit će više suradnika.
Grane vam omogućuju stvaranje "igrališta" s istim datotekama u master
grani. Ovu granu možete koristiti za izradu neovisnih značajki, testiranje novih značajki, unošenje promjena, stvaranje popravaka, pisanje dokumenata ili isprobavanje ideja bez lomljenja ili utjecaja na proizvodni kôd. Kad završite, spojite granu u proizvodnu master
.
Razgranavanje je temeljni koncept u Gitu koji se također koristi u GitHubu za upravljanje tijekovima rada različitih verzija jednog projekta. master
Grana je uvijek zadana grana u spremište koje se najčešće smatra „proizvodnja i razmjestiti kod”. Nove grane poput passwordless-auth
ili refactor-signup-ux
se mogu stvoriti iz master
grane.

Kako klonirati Git grane
Iako možete klonirati spremišta pomoću git clone
naredbe, imajte na umu da ovo klonira granu i daljinski upravljač HEAD
. To je obično master
zadano i uključuje sve ostale grane u spremištu.
Dakle, kada klonirate spremište, klonirate master
i sve ostale grane. To znači da ćete drugu poslovnicu morati sami prijaviti.
Recimo da je vaš zadatak na projektu raditi na značajci za dodavanje provjere autentičnosti bez lozinke na nadzornu ploču korisnika. I ova je značajka u passwordless-auth
grani.
Doista vam master
grana nije potrebna jer će se vaša "grana značajki" master
nakon toga spojiti u . Kako onda klonirati ovu passwordless-auth
granu bez dohvaćanja svih ostalih grana s "hrpom datoteka koje vam nisu potrebne"?
Stvorio sam ovaj uzorak spremišta da to objasnim. Ovo spremište sadrži jednostavan blog izgrađen s Nextjsom i ima četiri lažne grane:
- ovladati; majstorski
- razv
- inscenacija
- bez lozinke
U Nextjsu, bilo koja datoteka unutar mape pages/api
preslikava se na /api/*
stazu i tretirat će se kao API krajnja točka umjesto kao page
. U našem spremištu stvorio sam različite lažne API-je u ovom direktoriju kako bi svaka grana bila drugačija.
master
Grana drži datoteka stranica / API / hello.js dok passwordless-auth
drži datoteka stranica / api / auth.js . Svaka datoteka samo vraća lažni tekstualni odgovor. Pogledajte master
'hello API odgovor ovdje (s posebnom porukom za vas?).
Klonirajmo spremište:
git clone [email protected]:BolajiAyodeji/nextjs-blog.git
To nam daje pristup svim granama u ovom spremištu i možete se lako prebacivati između svake kako biste vidjeli svaku verziju i njezine datoteke.
git branch -a

Pitate se odakle potječu daljinski upravljači / podrijetlo / .. ?
Kada klonirate spremište, povlačite podatke iz spremišta na Internetu ili s internog poslužitelja poznatog kao udaljeni . Riječ origin je alias koji je stvorio vaš Git za zamjenu udaljenog URL-a (ako želite, možete promijeniti ili odrediti drugi alias).
Ove grane daljinskog upravljača / podrijetla / .. vode vas natrag do spremišta podrijetla koje ste klonirali s interneta, tako da i dalje možete izvoditi povlačenje / guranje s podrijetla.

Dakle, kada klonirate master
svoj stroj, remotes/origin/master
originalna je master
grana na Internetu i master
na vašem lokalnom stroju. Tako ćete vući / gurati od i do remotes/origin/master
.
Ukratko, Remote je URL koji vas usmjerava na spremište na Internetu, dok je Origin pseudonim za ovaj udaljeni URL.

Kako klonirati određenu granu
Sada klonirajmo određenu granu iz našeg demo spremišta. Postoje dva načina za kloniranje određene grane. Možete:
- Klonirajte spremište, dohvatite sve grane i odmah izvršite naplatu do određene grane.
- Klonirajte spremište i dohvatite samo jednu granu.
Prva opcija
git clone --branch
ili
git clone -b
Ovim dohvaćate sve grane u spremištu, naplaćujete onu koju ste naveli, a određena grana postaje konfigurirana lokalna grana za git push
i git pull
. Ali svejedno ste dohvatili sve datoteke iz svake grane. Ovo možda nije ono što želite, zar ne? ?
Isprobajmo:
git clone -b passwordless-auth [email protected]:BolajiAyodeji/nextjs-blog.git
Ovo se automatski konfigurira passwordless-auth
kao lokalna grana, ali još uvijek prati ostale grane.


Druga mogućnost
git clone --branch --single-branch
ili
git clone -b --single-branch
Ovo izvodi istu radnju kao i opcija prva, osim što je --single-branch
opcija uvedena u Git verziji 1.7.10 i novijoj. Omogućuje vam preuzimanje datoteka samo iz navedene grane bez dohvaćanja drugih grana.
Isprobajmo:
git clone -b passwordless-auth --single-branch [email protected]:BolajiAyodeji/nextjs-blog.git
Ovo se automatski konfigurira passwordless-auth
kao lokalna grana i prati samo ovu granu.


Ako pokrenete cd pages/api
, auth.js
datoteku ćete pronaći u passwordless-auth
grani kao što se očekivalo od prethodnog postavljanja.
Zaključak
Možda vam ponestaje interneta ili prostora za pohranu, ali morate raditi na zadatku u određenoj grani. Ili biste iz različitih razloga možda željeli klonirati određenu granu s ograničenim datotekama. Srećom, Git vam pruža fleksibilnost za to. Istegnite mišiće i isprobajte, postoji još mnogo toga "Git" za naučiti.
Jedan po jedan, da? ✌?