Spre deosebire de sistemele mai vechi de control al versiunilor centralizate, cum ar fi SVN și CVS, Git este distribuit. Fiecare dezvoltator are istoricul și controlul complet al codului său local sau de la distanță. De asemenea, pot accesa sau manipula mai multe părți ale codului după cum consideră potrivit din diferite locații.

De când Linus Torvalds (celebrul creator al sistemului de operare Linux kernel) a creat Git în 2005 pentru dezvoltarea kernel-ului Linux, acesta a devenit cel mai utilizat sistem modern de control al versiunilor din lume.

În acest articol, vă voi prezenta fluxurile de lucru clonă Git și ramură Git și vă voi arăta cum puteți clona o ramură specifică în funcție de nevoile dvs. Sa incepem! ?

Condiții prealabile

  • Cunoașterea de bază a terminalului
  • Abilitatea de a tasta comenzi în terminal
  • Git instalat (vă voi arăta în continuare cum)
  • Un cont GitHub
  • Un zâmbet pe fața ta (Pune-ți acel zâmbet prieten?)

Introducere rapidă la Git și GitHub

Conform Wikipedia,

Git este un sistem de control al versiunii distribuite conceput pentru a urmări modificările aduse unui proiect (cod) în dezvoltarea de software. Acesta este destinat să impună coordonarea, colaborarea, viteza și eficiența între dezvoltatori.

GitHub, pe de altă parte, este un serviciu de găzduire bazat pe web pentru controlul versiunilor folosind Git. Oferă toate funcțiile de control al versiunii distribuite și gestionarea codului sursă ale Git, precum și adăugarea mai multor caracteristici pentru codul computerului.

ad-banner

Cum se instalează Git pe Windows

Descărcați și instalați cele mai recente Git pentru Windows Installer aici.

Cum se instalează Git pe Linux

Iată comenzile bazate pe distribuția Linux:

Debian sau 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

Cum se instalează Git pe un Mac

Descărcați și instalați cele mai recente Git pentru instalatorul Mac aici.

Sau puteți tasta această comandă:

brew install git

Acum că avem Git instalat, să trecem la tutorial.

Introducere în Git Clone

Git vă permite să gestionați și să vă versionați proiectul (proiectele) într-un „depozit”. Acest depozit este stocat pe un serviciu de găzduire bazat pe web pentru controlul versiunilor, cum ar fi GitHub.

Apoi puteți clona acest depozit pe computerul dvs. local și puteți avea toate fișierele și sucursalele la nivel local (în curând voi explica mai multe despre sucursale).

Git Clone Branch Cum sa clonati o ramura specifica

De exemplu, puteți clona depozitul Routech cu SSH astfel:

git clone git@github.com:Routech/Routech.git

Introducere în ramurile Git

Când lucrați la un proiect, veți avea probabil caracteristici diferite. Și mai mulți colaboratori vor lucra la acest proiect și la caracteristicile sale.

Sucursalele vă permit să creați un „loc de joacă” cu aceleași fișiere în master ramură. Puteți utiliza această ramură pentru a crea caracteristici independente, pentru a testa funcții noi, pentru a face modificări, pentru a crea remedieri, pentru a scrie documente sau pentru a încerca idei fără a sparge sau afecta codul de producție. Când ați terminat, îmbinați ramura în producție master ramură.

Branching este un concept de bază în Git, care este, de asemenea, utilizat în GitHub pentru a gestiona fluxurile de lucru ale diferitelor versiuni ale unui proiect. master ramură este întotdeauna ramura implicită într-un depozit care este cel mai adesea considerat „cod de producție și implementabil”. Noi ramuri precum passwordless-auth sau refactor-signup-ux poate fi creat din master ramură.

1611743767 72 Git Clone Branch Cum sa clonati o ramura specifica
Toate sucursalele din depozitul Routech

Cum să clonați ramurile Git

În timp ce puteți clona depozite cu git clone comandă, rețineți că aceasta clonează ramura și telecomanda HEAD. Aceasta este de obicei master implicit și include toate celelalte ramuri din depozit.

Deci, atunci când clonați un depozit, clonați master și toate celelalte ramuri. Aceasta înseamnă că va trebui să achiziționați singură o altă sucursală.

Să presupunem că sarcina dvs. într-un proiect este să lucrați la o caracteristică pentru a adăuga autentificare fără parolă la un tablou de bord al utilizatorului. Și această caracteristică se află în passwordless-auth ramură.

Chiar nu ai nevoie de master ramură, deoarece „filiala caracteristică” va fi combinată în master după aceea. Cum clonezi atunci acest lucru passwordless-auth ramificați fără a prelua toate celelalte ramuri cu „o grămadă de fișiere de care nu aveți nevoie”?

Am creat acest depozit de eșantioane pentru a explica acest lucru. Acest depozit conține un blog simplu construit cu Nextjs și are patru ramuri fictive:

  • maestru
  • dev
  • punerea în scenă
  • fără parolă-autentificare

În Nextjs, orice fișier din folder pages/api este mapat la /api/* cale și va fi tratat ca un punct final API în loc de un page. În depozitul nostru, am creat diferite API-uri false în acest director pentru a face fiecare ramură diferită.

master ramura deține fișierul pages / api / hello.js in timp ce passwordless-auth deține dosarul pages / api / auth.js. Fiecare fișier returnează doar un răspuns fals. Vedea masterBună ziua răspunsul API aici (cu un mesaj special pentru tine?).

Să clonăm depozitul:

git clone git@github.com:BolajiAyodeji/nextjs-blog.git

Acest lucru ne oferă acces la toate ramurile din acest depozit și puteți comuta cu ușurință între fiecare pentru a vedea fiecare versiune și fișierele sale.

git branch -a
1611743767 593 Git Clone Branch Cum sa clonati o ramura specifica

Mă întreb unde este telecomenzi / origine / .. ramuri provenite de la?

Când clonați un depozit, extrageți date dintr-un depozit pe internet sau un server intern cunoscut sub numele de la distanta. Cuvântul origine este un alias creat de Git pentru a înlocui adresa URL la distanță (puteți modifica sau specifica un alt alias, dacă doriți).

Aceste telecomenzi / origine / .. ramurile vă îndreaptă înapoi către depozitul de origine pe care l-ați clonat de pe internet, astfel încât să puteți efectua în continuare pull / push din origine.

1611743767 426 Git Clone Branch Cum sa clonati o ramura specifica

Deci când clonezi master pe mașina ta, remotes/origin/master este originalul master sucursală pe internet și master se află pe mașina dvs. locală. Deci veți trage / împinge de la și către remotes/origin/master.

În concluzie la distanta este adresa URL care vă îndreaptă către depozitul de pe Internet în timp ce Origine este un alias pentru această adresă URL la distanță.

1611743767 518 Git Clone Branch Cum sa clonati o ramura specifica

Cum să clonați o ramură specifică

Acum să clonăm o ramură specifică din depozitul nostru demo. Există două moduri de a clona o anumită ramură. Puteți fie:

  • Clonați depozitul, preluați toate sucursalele și faceți check-out imediat la o anumită sucursală.
  • Clonați depozitul și preluați o singură ramură.

Prima opțiune

git clone --branch <branchname> <remote-repo-url>

sau

git clone -b <branchname> <remote-repo-url>
Aici -b este doar un alias pentru – ramură

Cu aceasta, preluați toate ramurile din depozit, faceți check-out la cea specificată de dvs. și ramura specifică devine ramura locală configurată pentru git push și git pull . Dar ați preluat totuși toate fișierele din fiecare ramură. Este posibil să nu fie ceea ce vrei tu nu? ?

Să-l testăm:

 git clone -b passwordless-auth git@github.com:BolajiAyodeji/nextjs-blog.git

Acest lucru se configurează automat passwordless-auth ca ramură locală, dar încă urmărește alte ramuri.

1611743767 490 Git Clone Branch Cum sa clonati o ramura specifica
1611743767 548 Git Clone Branch Cum sa clonati o ramura specifica

Opțiunea a doua

git clone --branch <branchname> --single-branch <remote-repo-url>

sau

git clone -b <branchname> --single-branch <remote-repo-url>
Aici -b este doar un alias pentru – ramură

Aceasta efectuează aceeași acțiune ca opțiunea unu, cu excepția faptului că --single-branch opțiunea a fost introdusă în versiunea Git 1.7.10 și ulterioară. Vă permite să preluați fișiere numai din ramura specificată fără a prelua alte ramuri.

Să-l testăm:

git clone -b passwordless-auth --single-branch git@github.com:BolajiAyodeji/nextjs-blog.git

Acest lucru se configurează automat passwordless-auth ca ramură locală și urmărește doar această ramură.

1611743767 621 Git Clone Branch Cum sa clonati o ramura specifica
1611743767 811 Git Clone Branch Cum sa clonati o ramura specifica

Dacă alergi cd pages/api veți găsi auth.js fișier în passwordless-auth ramificați așa cum era de așteptat din configurarea anterioară.

Concluzie

S-ar putea să rămâneți fără internet sau spațiu de stocare, dar trebuie să lucrați la o activitate într-o anumită ramură. Sau poate doriți să clonați o anumită ramură cu fișiere limitate din diverse motive. Din fericire, Git vă oferă flexibilitatea pentru a face acest lucru. Flexează-ți mușchii și încearcă-l, există mult mai multe „Git” de învățat.

Pe rând, da? ✌?