A differenza dei vecchi sistemi di controllo delle versioni centralizzati come SVN e CVS, Git è distribuito. Ogni sviluppatore ha la cronologia completa e il controllo del proprio codice in locale o in remoto. Possono anche accedere o manipolare diverse parti del codice che ritengono adatte da posizioni diverse.
Da quando Linus Torvalds (il famoso creatore del kernel del sistema operativo Linux) ha creato Git nel 2005 per lo sviluppo del kernel Linux, è diventato il sistema di controllo delle versioni moderno più utilizzato al mondo.
In questo articolo, ti presenterò i flussi di lavoro Git clone e Git branch e ti mostrerò come clonare un ramo specifico in base alle tue esigenze. Cominciamo! ?
Prerequisiti
- Conoscenza di base del terminale
- Possibilità di digitare comandi nel terminale
- Git installato (ti mostrerò ancora come)
- Un account GitHub
- Un sorriso sul tuo viso (metti su quel sorriso amico?)
Introduzione rapida a Git e GitHub
Secondo Wikipedia,
Git è un sistema di controllo della versione distribuito progettato per tenere traccia delle modifiche a un progetto (codice) nello sviluppo del software. Ha lo scopo di rafforzare il coordinamento, la collaborazione, la velocità e l'efficienza tra gli sviluppatori.GitHub, d'altra parte, è un servizio di hosting basato sul web per il controllo della versione utilizzando Git. Offre tutto il controllo della versione distribuita e la funzionalità di gestione del codice sorgente di Git, oltre ad aggiungere ulteriori funzionalità per il codice del computer.
Come installare Git su Windows
Scarica e installa l'ultima versione di Git per Windows Installer qui.
Come installare Git su Linux
Ecco i comandi basati sulla tua distribuzione Linux:
Debian o 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
Come installare Git su un Mac
Scarica e installa l'ultimo programma di installazione di Git per Mac qui.
Oppure puoi digitare questo comando:
brew install git
Ora che abbiamo installato Git, passiamo al tutorial.
Introduzione a Git Clone
Git ti consente di gestire e versione dei tuoi progetti in un "repository". Questo repository è archiviato su un servizio di hosting basato sul Web per il controllo della versione, come GitHub.
Puoi quindi clonare questo repository sulla tua macchina locale e avere tutti i file e le diramazioni localmente (spiegherò di più sui rami presto).

Ad esempio, puoi clonare il repository di freeCodeCamp con SSH in questo modo:
git clone [email protected]:freeCodeCamp/freeCodeCamp.git
Introduzione a Git Branches
Quando lavori a un progetto, probabilmente avrai caratteristiche diverse. E più collaboratori lavoreranno a questo progetto e alle sue caratteristiche.
I rami ti permettono di creare un "playground" con gli stessi file nel master
ramo. È possibile utilizzare questo ramo per creare funzionalità indipendenti, testare nuove funzionalità, apportare modifiche sostanziali, creare correzioni, scrivere documenti o provare idee senza interrompere o influenzare il codice di produzione. Quando hai finito, unisci il ramo al ramo di produzione master
.
La ramificazione è un concetto fondamentale in Git che viene utilizzato anche in GitHub per gestire i flussi di lavoro di diverse versioni di un progetto. Il master
ramo è sempre il ramo predefinito in un repository che viene spesso considerato "codice di produzione e distribuibile". Nuovi rami come passwordless-auth
o refactor-signup-ux
possono essere creati dal master
ramo.

Come clonare i rami di Git
Anche se puoi clonare i repository con il git clone
comando, tieni presente che questo clona il ramo e il telecomando HEAD
. Questo di solito è master
predefinito e include tutti gli altri rami del repository.
Quindi, quando cloni un repository, cloni il master
e tutti gli altri rami. Ciò significa che dovrai controllare tu stesso un altro ramo.
Supponiamo che il tuo compito su un progetto sia lavorare su una funzionalità per aggiungere l'autenticazione senza password a un dashboard utente. E questa caratteristica è nel passwordless-auth
ramo.
Non hai davvero bisogno del master
ramo poiché il tuo "ramo delle funzionalità" verrà unito in master
seguito. Come fai allora a clonare questo passwordless-auth
ramo senza recuperare tutti gli altri rami con "un mucchio di file che non ti servono"?
Ho creato questo repository di esempio per spiegare questo. Questo repository contiene un semplice blog creato con Nextjs e ha quattro rami fittizi:
- maestro
- dev
- messa in scena
- autenticazione senza password
In Nextjs, qualsiasi file all'interno della cartella pages/api
viene mappato al /api/*
percorso e verrà trattato come un endpoint API anziché un file page
. Nel nostro repository, ho creato diverse API fittizie in questa directory per rendere ogni ramo diverso.
Il master
ramo contiene il file di pagine / API / hello.js mentre passwordless-auth
contiene il file pagine / api / auth.js . Ogni file restituisce solo una risposta di testo fittizio. Vedi master
la risposta dell'API hello qui (con un messaggio speciale per te?).
Cloniamo il repository:
git clone [email protected]:BolajiAyodeji/nextjs-blog.git
Questo ci dà accesso a tutti i rami in questo repository e puoi facilmente passare da uno all'altro per vedere ogni versione ei suoi file.
git branch -a

Ti chiedi da dove provenissero i telecomandi / origine / .. rami?
Quando cloni un repository, esegui il pull dei dati da un repository su Internet o da un server interno noto come remoto . La parola origine è un alias creato dal tuo Git per sostituire l'URL remoto (puoi modificare o specificare un altro alias se lo desideri).
Questi rami remoti / origin / .. ti rimandano al repository di origine che hai clonato da Internet in modo da poter ancora eseguire il pull / push dall'origine.

Quindi, quando cloni master
sulla tua macchina, remotes/origin/master
è il master
ramo originale su Internet e si master
trova sulla tua macchina locale. Quindi tirerai / spingerai da e verso il file remotes/origin/master
.
In sintesi Remote è l'URL che ti indirizza al repository su Internet mentre Origin è un alias per questo URL remoto.

Come clonare un ramo specifico
Ora cloniamo un ramo specifico dal nostro repository demo. Esistono due modi per clonare un ramo specifico. Puoi:
- Clona il repository, recupera tutti i rami ed esegui immediatamente il checkout in un ramo specifico.
- Clona il repository e recupera solo un singolo ramo.
Opzione uno
git clone --branch
o
git clone -b
Con questo, prendi tutti i rami nel repository, fai il checkout a quello che hai specificato e il ramo specifico diventa il ramo locale configurato per git push
e git pull
. Ma hai comunque recuperato tutti i file da ogni ramo. Questo potrebbe non essere quello che vuoi, giusto? ?
Proviamolo:
git clone -b passwordless-auth [email protected]:BolajiAyodeji/nextjs-blog.git
Questo si configura automaticamente passwordless-auth
come il ramo locale ma tiene comunque traccia degli altri rami.


Opzione due
git clone --branch --single-branch
o
git clone -b --single-branch
Esegue la stessa azione dell'opzione uno, tranne per il fatto che l' --single-branch
opzione è stata introdotta in Git versione 1.7.10 e successive. Ti consente di recuperare solo i file dal ramo specificato senza recuperare altri rami.
Proviamolo:
git clone -b passwordless-auth --single-branch [email protected]:BolajiAyodeji/nextjs-blog.git
Questo si configura automaticamente passwordless-auth
come il ramo locale e tiene traccia solo di questo ramo.


Se esegui cd pages/api
troverai il auth.js
file nel passwordless-auth
ramo come previsto dalla configurazione precedente.
Conclusione
Potresti essere a corto di Internet o di spazio di archiviazione, ma devi lavorare su un'attività in un ramo specifico. Oppure potresti voler clonare un ramo specifico con file limitati per vari motivi. Fortunatamente, Git ti offre la flessibilità per farlo. Fletti i muscoli e provalo, c'è molto di più "Git" da imparare.
Uno alla volta, vero? ✌?