Git Clone Branch - Sådan klones en bestemt gren

I modsætning til ældre centraliserede versionskontrolsystemer som SVN og CVS distribueres Git. Hver udvikler har den fulde historie og kontrol over deres kode lokalt eller eksternt. De kan også få adgang til eller manipulere flere dele af koden, som de finder passende fra forskellige steder.

Siden Linus Torvalds (den berømte skaber af Linux-operativsystemets kerne) skabte Git i 2005 til Linux-kerneudvikling, er det blevet det mest anvendte moderne versionskontrolsystem i verden.

I denne artikel introducerer jeg dig til Git-klon- og Git-filialens arbejdsgange, og jeg viser dig, hvordan du kan klone en bestemt gren baseret på dine behov. Lad os begynde! ?

Forudsætninger

  • Grundlæggende viden om terminalen
  • Evne til at skrive kommandoer i terminalen
  • Git installeret (jeg vil stadig vise dig hvordan)
  • En GitHub-konto
  • Et smil på dit ansigt (sæt det smil ven op?)

Hurtig introduktion til Git og GitHub

Ifølge Wikipedia,

Git er et distribueret versionskontrolsystem designet til at spore ændringer til et projekt (kode) i softwareudvikling. Det er beregnet til at håndhæve koordination, samarbejde, hastighed og effektivitet blandt udviklere.

GitHub er derimod en webbaseret hostingtjeneste til versionskontrol ved hjælp af Git. Det tilbyder alle de distribuerede versionskontrol- og kildekodestyringsfunktioner i Git samt tilføjelse af flere funktioner til computerkode.

Sådan installeres Git på Windows

Download og installer den nyeste Git til Windows Installer her.

Sådan installeres Git på Linux

Her er kommandoerne baseret på din Linux distro:

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

Sådan installeres Git på en Mac

Download og installer det nyeste installationsprogram for Git til Mac her.

Eller du kan skrive denne kommando:

brew install git

Nu hvor vi har Git installeret, lad os gå videre til vejledningen.

Introduktion til Git Clone

Git giver dig mulighed for at styre og versionere dine projekt (er) i et "lager". Dette lager er gemt på en webbaseret hostingtjeneste til versionskontrol, som GitHub.

Du kan derefter klone dette lager til din lokale maskine og have alle filerne og filialerne lokalt (jeg forklarer snart mere om filialer).

For eksempel kan du klone freeCodeCamps lager med SSH sådan:

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

Introduktion til Git Branches

Når du arbejder på et projekt, vil du sandsynligvis have forskellige funktioner. Og flere bidragydere vil arbejde på dette projekt og dets funktioner.

Filialer giver dig mulighed for at oprette en "legeplads" med de samme filer i masterfilialen. Du kan bruge denne gren til at opbygge uafhængige funktioner, teste nye funktioner, foretage ændringer, bryde ændringer, oprette rettelser, skrive dokumenter eller afprøve ideer uden at bryde eller påvirke produktionskoden. Når du er færdig, fletter du filialen ind i produktionsgrenen master.

Forgrening er et kernekoncept i Git, som også bruges i GitHub til at styre arbejdsgange i forskellige versioner af et projekt. Den mastergren er altid standard filial i et depot, der oftest betragtes som "produktion og deployerbare kode". Nye grene kan lide passwordless-autheller refactor-signup-uxkan oprettes fra mastergrenen.

Sådan klones Git-grene

Mens du kan klone opbevaringssteder med git clonekommandoen, skal du huske at dette kloner grenen og fjernbetjeningen HEAD. Dette er normalt mastersom standard og inkluderer alle andre grene i arkivet.

Så når du kloner et arkiv, kloner du masterog alle andre grene. Dette betyder, at du selv skal tjekke en anden filial.

Lad os sige, at din opgave på et projekt er at arbejde på en funktion for at tilføje adgangskodeløs godkendelse til et brugerdashboard. Og denne funktion er i passwordless-authgrenen.

Du har virkelig ikke brug for masterfilialen, da din "funktionsgren" vil blive flettet til masterbagefter. Hvordan kloner du så denne passwordless-authgren uden at hente alle andre grene med "en masse filer, du ikke har brug for"?

Jeg oprettede dette eksemplar arkiv for at forklare dette. Dette lager har en simpel blog bygget med Nextjs og har fire dummy-grene:

  • mestre
  • dev
  • iscenesættelse
  • passwordless-auth

I Nextjs kortlægges enhver fil inde i mappen pages/apitil /api/*stien og behandles som et API-slutpunkt i stedet for en page. I vores lager har jeg oprettet forskellige dummy API'er i denne mappe for at gøre hver gren forskellig.

Den mastergren holder filen sider / api / hello.js mens passwordless-authholder fil de sider / api / auth.js . Hver fil returnerer bare et dummy-tekstsvar. Se masterHello API-svar her (med en speciel besked til dig?).

Lad os klone lageret:

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

Dette giver os adgang til alle grene i dette lager, og du kan nemt skifte mellem hver for at se hver version og dens filer.

git branch -a

Gad vide, hvor fjernbetjeninger / oprindelse / .. filialer kom fra?

Når du kloner et lager, trækker du data fra et lager på internettet eller en intern server kendt som fjernbetjeningen . Ordet oprindelse er et alias oprettet af din Git for at erstatte den eksterne URL (du kan ændre eller angive et andet alias, hvis du vil).

Disse fjernbetjeninger / oprindelse / .. grene peger dig tilbage til oprindelsesregistret, du klonede fra internettet, så du stadig kan udføre pull / push fra oprindelsen.

Så når du kloner masterpå din maskine, remotes/origin/masterer den oprindelige masterfilial på internettet og masterpå din lokale maskine. Så du vil trække / skubbe fra og til remotes/origin/master.

Sammenfattende er Remote den URL, der peger dig på lageret på internettet, mens Origin er et alias for denne eksterne URL.

Sådan klones en bestemt gren

Lad os nu klone en bestemt gren fra vores demo-arkiv. Der er to måder at klone en bestemt gren på. Du kan enten:

  • Klon arkivet, hent straks alle grene og checkout til en bestemt gren.
  • Klon lageret og hent kun en enkelt gren.

Valgmulighed 1

git clone --branch  

eller

git clone -b  

Med dette henter du alle grene i arkivet, kassen til den du har angivet, og den specifikke gren bliver den konfigurerede lokale gren for git pushog git pull. Men du hentede stadig alle filer fra hver gren. Dette er muligvis ikke det, du vil have, ikke? ?

Lad os teste det:

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

Dette konfigureres automatisk passwordless-authsom den lokale filial, men sporer stadig andre filialer.

Mulighed to

git clone --branch  --single-branch 

eller

git clone -b  --single-branch 

Dette udfører den samme handling som indstilling 1, bortset fra at --single-branchindstillingen blev introduceret i Git version 1.7.10 og senere. Det giver dig mulighed for kun at hente filer fra den angivne gren uden at hente andre grene.

Lad os teste det:

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

Dette konfigureres automatisk passwordless-authsom den lokale filial og sporer kun denne filial.

Hvis du kører cd pages/api, finder du auth.jsfilen i passwordless-authgrenen som forventet fra den tidligere opsætning.

Konklusion

Du løber muligvis tør for internet eller lagerplads, men du skal arbejde på en opgave i en bestemt gren. Eller du vil måske klone en bestemt gren med begrænsede filer af forskellige årsager. Heldigvis giver Git dig fleksibiliteten til at gøre dette. Bøj dine muskler og prøv det, der er meget mere "Git" at lære.

En ad gangen, ja? ✌?