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 master
filialen. 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 master
gren er altid standard filial i et depot, der oftest betragtes som "produktion og deployerbare kode". Nye grene kan lide passwordless-auth
eller refactor-signup-ux
kan oprettes fra master
grenen.

Sådan klones Git-grene
Mens du kan klone opbevaringssteder med git clone
kommandoen, skal du huske at dette kloner grenen og fjernbetjeningen HEAD
. Dette er normalt master
som standard og inkluderer alle andre grene i arkivet.
Så når du kloner et arkiv, kloner du master
og 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-auth
grenen.
Du har virkelig ikke brug for master
filialen, da din "funktionsgren" vil blive flettet til master
bagefter. Hvordan kloner du så denne passwordless-auth
gren 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/api
til /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 master
gren holder filen sider / api / hello.js mens passwordless-auth
holder fil de sider / api / auth.js . Hver fil returnerer bare et dummy-tekstsvar. Se master
Hello 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 master
på din maskine, remotes/origin/master
er den oprindelige master
filial på internettet og master
på 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 push
og 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-auth
som 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-branch
indstillingen 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-auth
som den lokale filial og sporer kun denne filial.


Hvis du kører cd pages/api
, finder du auth.js
filen i passwordless-auth
grenen 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? ✌?