Git Clone Branch - Kako klonirati določeno vejo

Za razliko od starejših centraliziranih sistemov za nadzor različic, kot sta SVN in CVS, se Git distribuira. Vsak razvijalec ima celotno zgodovino in nadzor nad svojo kodo lokalno ali na daljavo. Prav tako lahko dostopajo do več delov kode ali manipulirajo z njimi, kot menijo, da ustrezajo z različnih lokacij.

Odkar je Linus Torvalds (slavni ustvarjalec jedra operacijskega sistema Linux) leta 2005 ustvaril Git za razvoj jedra Linux, je postal najbolj razširjen sodoben sistem za nadzor različic na svetu.

V tem članku vam bom predstavil klon Git in poteke vej Git ter vam pokazal, kako lahko klonirate določeno vejo glede na vaše potrebe. Začnimo! ?

Pogoji

  • Osnovno znanje terminala
  • Sposobnost vnašanja ukazov v terminalu
  • Git nameščen (še vedno vam pokažem, kako)
  • Račun GitHub
  • Nasmeh na obrazu (Želite postaviti tega nasmejanega prijatelja?)

Hiter uvod v Git in GitHub

Po Wikipediji

Git je porazdeljeni sistem za nadzor različic, zasnovan za sledenje spremembam v projektu (kodi) pri razvoju programske opreme. Namenjen je spodbujanju usklajevanja, sodelovanja, hitrosti in učinkovitosti med razvijalci.

GitHub pa je spletna storitev gostovanja za nadzor različic z uporabo Gita. Ponuja vse funkcije Git za porazdeljen nadzor nad različicami in upravljanje izvorne kode ter dodaja več funkcij za računalniško kodo.

Kako namestiti Git v sistem Windows

Tukaj prenesite in namestite najnovejši namestitveni program Git za Windows.

Kako namestiti Git na Linux

Tu so ukazi, ki temeljijo na vašem distribucijskem sistemu Linux:

Debian ali 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 namestiti Git na Mac

Tukaj prenesite in namestite najnovejši namestitveni program Git za Mac.

Lahko pa vnesete ta ukaz:

brew install git

Zdaj, ko smo namestili Git, pojdimo na vadnico.

Uvod v Git Clone

Git vam omogoča upravljanje in različico vaših projektov v "skladišču". To skladišče je shranjeno v spletni storitvi gostovanja za nadzor različic, kot je GitHub.

Nato lahko to repozitorij klonirate v svoj lokalni računalnik in vse datoteke in veje shranite lokalno (kmalu bom razložil več o vejah).

Na primer, lahko klonirate repozitorij freeCodeCampa z SSH tako:

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

Uvod v Git Branches

Pri delu na projektu boste verjetno imeli različne lastnosti. Na tem projektu in njegovih značilnostih bo delalo več sodelavcev.

Podružnice vam omogočajo, da ustvarite "igrišče" z enakimi datotekami v masterveji. To vejo lahko uporabite za ustvarjanje neodvisnih funkcij, preizkušanje novih funkcij, spreminjanje sprememb, ustvarjanje popravkov, pisanje dokumentov ali preizkušanje idej, ne da bi to vplivalo na proizvodno kodo. Ko končate, vejo združite v proizvodno mastervejo.

Razvejanje je osrednji koncept v Gitu, ki se v GitHub uporablja tudi za upravljanje delovnih tokov različnih različic enega projekta. masterVeja je vedno privzeta podružnica v skladišču, ki se najbolj pogosto šteje za "proizvodnjo in premestljive koda". Iz podružnice lahko ustvarite nove veje, ki so podobne passwordless-authali refactor-signup-uxjih je mogoče ustvariti master.

Kako klonirati Git Branches

Medtem ko lahko z git cloneukazom klonirate repozitorije , ne pozabite, da to klonira vejo in daljinski upravljalnik HEAD. To je običajno masterprivzeto in vključuje vse druge veje v skladišču.

Ko klonirate repozitorij, klonirate masterin vse druge veje. To pomeni, da boste morali sami odjaviti drugo poslovalnico.

Recimo, da je vaša naloga v projektu, da delate na funkciji za dodajanje overjanja brez gesla na nadzorno ploščo uporabnika. In ta funkcija je v passwordless-authveji.

Resnično ne potrebujete masterpodružnice, saj bo vaša "veja funkcije" nato združena v master. Kako potem klonirati to passwordless-authvejo, ne da bi vse druge veje prenesli s "kopico datotek, ki jih ne potrebujete"?

Za razlago tega sem ustvaril to vzorčno repozitorij. To skladišče vsebuje preprost spletni dnevnik, zgrajen z Nextjsom, in ima štiri lažne veje:

  • mojster
  • razv
  • uprizoritev
  • brez gesla

V Nextjsu je katera koli datoteka v mapi pages/apipreslikana na /api/*pot in bo obravnavana kot končna točka API namesto kot page. V našem repozitoriju sem v tem imeniku ustvaril različne navidezne API-je, s katerimi je vsaka veja drugačna.

masterPodružnica ima datotečne strani / API / hello.js , medtem ko passwordless-authima datotečne strani / API / auth.js . Vsaka datoteka samo vrne preskusni besedilni odgovor. Oglejte si masterodziv API-ja tukaj (s posebnim sporočilom za vas?).

Klonirajmo repozitorij:

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

To nam omogoča dostop do vseh vej v tem repozitoriju in lahko preprosto preklapljate med njimi, da si ogledate vsako različico in njene datoteke.

git branch -a

Se sprašujete, od kod izvirajo daljinske / izvorne / veje?

Ko klonirate repozitorij, povlečete podatke iz repozitorija v internetu ali z notranjega strežnika, imenovanega oddaljeni . Beseda origin je vzdevek, ki ga je ustvaril vaš Git, da nadomesti oddaljeni URL (če želite, lahko spremenite ali določite drug vzdevek).

Te podružnice daljinskega upravljalnika / izvora / .. vas vodijo nazaj do odlagališča izvorov, ki ste ga klonirali iz interneta, tako da lahko še vedno izvajate vlečenje / potiskanje iz izvora.

Torej, ko klonirate masterna svoj računalnik, remotes/origin/masterje prvotna masterveja na internetu in masterje na vašem lokalnem računalniku. Torej boste vlekli / potiskali od in do remotes/origin/master.

Če povzamemo, Remote je URL, ki vas usmerja na odlagališče v internetu, medtem ko je Origin vzdevek za ta oddaljeni URL.

Kako klonirati določeno vejo

Zdaj klonirajmo določeno vejo iz našega demo repozitorija. Obstajata dva načina za kloniranje določene veje. Lahko:

  • Klonirajte repozitorij, takoj pridobite vse podružnice in prevzem do določene podružnice.
  • Klonirajte repozitorij in pridobite samo eno vejo.

Prva možnost

git clone --branch  

ali

git clone -b  

S tem pridobite vse veje v repozitoriju, plačate tisto, ki ste jo določili, in določena veja postane konfigurirana lokalna veja za git pushin git pull. Vendar ste vseeno prenesli vse datoteke iz vsake veje. To morda ni tisto, kar želite, kajne? ?

Preizkusimo:

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

Ta se samodejno konfigurira passwordless-authkot lokalna veja, vendar še vedno sledi drugim vejam.

Druga možnost

git clone --branch  --single-branch 

ali

git clone -b  --single-branch 

Ta izvede enako dejanje kot prva možnost, le da je bila --single-branchmožnost uvedena v različici Git 1.7.10 in novejši. Omogoča vam samo pridobivanje datotek iz navedene veje, ne da bi bilo treba pridobiti druge veje.

Preizkusimo:

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

Ta se samodejno konfigurira passwordless-authkot lokalna veja in sledi samo tej veji.

Če zaženete cd pages/api, boste auth.jsdatoteko našli v passwordless-authveji, kot je bilo pričakovano od prejšnje nastavitve.

Zaključek

Morda vam zmanjkuje interneta ali prostora za shranjevanje, vendar morate nalogo opraviti v določeni veji. Ali pa boste morda želeli iz različnih razlogov klonirati določeno vejo z omejenimi datotekami. Na srečo vam Git omogoča prilagodljivost za to. Upognite mišice in preizkusite, "Git" se lahko naučite še veliko več.

Vsak za drugim, ja? ✌?