Pensate a quanto sia utile scrivere un libro e sperimentare nuove idee senza mescolare il testo originale. Potreste iniziare una nuova scheda per ogni idea, tenendo i vostri bozze separate.
Git, un sistema di controllo versione, permette agli sviluppatori software di fare lo stesso con il codice attraverso le “branche”. Ogni branca rappresenta una traiettoria di sviluppo separata, consentendovi di esplorare le modifiche senza influenzare la base di codice principale.
In questo articolo, vi guiderò nell’uso di git clone
, concentrandomi sulla clonazione di specifiche branch. Se vi serve imparare di più su Git, vi raccomando questo corso Introduction to Git.
Cominciamo con una breve risposta per chi di voi è in fretta. Dopo, approfondiremo le informazioni.
Risposta breve: Come clonare una specifica branch
Per clonare una specifica branch da un repository git, usate il comando:
git clone --single-branch --branch <branch_name> <repository_url>
Sostituisci <branch_name>
con il nome della branch desiderata e <repository_url>
con l’URL del repository. Questo comando crea una copia locale della branch specificata, consentendo un immediato e focusato sviluppo sulla branch in questione.
Esempio
Attraverso questo articolo, userremo questo repository. Puoi usarlo per provare i comandi che impari sulla tua macchina. Il repository contiene tre branch:
main
: La branch predefinita con due file di testo.add-new-file
: Una branch dove è stato aggiunto un terzo file.modify-file
: Una branch dove il secondo file è stato modificato.
Ecco come possiamo clonare la branch add-new-file:
git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git
Che cos’è git clone
?
Per default, git clone
è progettato per copiare l’intero repository in un nuovo directory sul tuo macchina locale, clonando tutte le branch. Ecco la sintassi:
git clone <repository_url>
Per clonare il repository di esempio, possiamo fare il seguente:
git clone https://github.com/fran-aubry/git-clone-example.git
Dopo l’esecuzione di questo comando, tutti i rami saranno copiati sulla macchina locale. tuttavia, solo i file di un ramo alla volta sono visibili, chiamato il ramo checkout. Dopo aver clonato un repository, il ramo predefinito (di solito chiamato main
o master
) è quello che viene checkout.
Cambiare rami
Dopo aver eseguito una clonazione completa, è possibile cambiarvi (checkout) sulla branch desiderata utilizzando il comando git checkout. Per esempio, per checkout sulla branch modify-file, si procede come segue:
git checkout modify-file
Profondità della clonazione
Quando si lavora con git, le modifiche ad una branca vengono salvate committendole utilizzando il comando git commit
. Ogni commit crea un nuovo stato di quella branca, che puoi revertire in seguito se necessario. Pensare a ciascun commit come alla creazione di una fotografia, con git che tiene traccia di tutte queste fotografie.puoi revertire una branca a qualsiasi di queste fotografie in qualsiasi momento.
Il comando git clone
quando usato senza opzioni, scarica ogni commit di ogni ramo sulla macchina locale. A seconda delle dimensioni del progetto, questo potrebbe occupare una quantità significativa dello spazio di archiviazione locale. Se sai che non avrai bisogno dell’intera storia, puoi usare il parametro --depth
per specificare quanti commit (o istantanee) vuoi clonare.
Per clonare il ramo principale caricando solo l’ultimo commit, usa il seguente comando:
git clone --depth=1 https://github.com/fran-aubry/git-clone-example.git
Clonare un Ramo Specifico
Abbiamo imparato come clonare un repository usando git clone. Per default, questo comando clona tutto sulla nostra macchina locale. Spesso, potreste solo essere interessati a lavorare su una specifica branch, quindi sarebbe più efficiente clonare solo quella particolare branch. Questo approcio risparmia spazio su disco e vi consente di iniziare a lavorare immediatamente senza aver bisogno di cambiare branch dopo aver clonato.
Nell’analogia dell’arte della scrittura del libro, considerate di essere stati assegnati al lavoro sulla riscrittura del secondo capitolo di un libro. In questo caso, dovreste clonare solo la branch in cui questa task è in corso, poiché non è necessario avere accesso a branch relative alla revisione di altri capitoli.
Puoi istruire git a clonare una sola branch aggiungendo gli argomenti --single-branch
e --branch
seguiti dal nome della branch:
git clone --single-branch --branch <branch_name> <repository_url>
Ora scompariranno i comandi:
git clone
: Questo è il comando base di git utilizzato per copiare un repository da una fonte remota alla macchina locale.
--single-branch
: Questa opzione dice a Git di clonare solo una sola branch. Se non viene specificata nessuna branch, sarà clonata la branch predefinita.
--branch
: questa opzione specifica la branch da clonare. Il> è il nome della branch che si desidera clonare.
: questo è l’URL del repository.
Per esempio, per clonare solo la branch modify-file dal nostro repository, puoi fare il seguente:
git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git
Come lavorare con una branch clonata
Quando state lavorando su una branch, ci sono tre operazioni essenziali che dovete fare:
- Salvare il vostro lavoro creando uno snapshot dello stato corrente.
- Caricare i vostri cambiamenti in modo che tutti li abbiano accesso.
- Scaricare i cambiamenti degli altri e unirli ai vostri.
Salvare i vostri cambi con git commit
.
In Git, salvare il proprio lavoro si chiama creare un commit. Questo processo fa una fotografia dello stato corrente della branca su cui stai lavorando.
Lo stato della branca viene salvato sulla macchina locale dopo ogni commit, permettendogli di navigare tra i vari stadi di progresso.
Per applicare le modifiche in un repository git, si utilizza il comando git commit
. tuttavia, prima di applicare le modifiche, git ha bisogno di sapere quali file si desidera includere nell’applicazione. I file da salvare sono specificati utilizzando il comando git add
. La sintassi di questo comando è la seguente:
git add <path_to_file>
Nella sintassi, <path_to_file>
è il percorso del file che si desidera applicare. Ad esempio, se siamo sulla branch modify-file
del nostro repository di esempio e abbiamo aggiunto un paragrafo a file2.txt
, si aggiungerà quel file eseguendo:
git add file2.txt
Dopo aver aggiunto tutti i file che volete includere nel vostro commit, puoi procedere al commit facendo clic su:
git commit -m <message>
Qui, l’argomento <message>
deve essere un messaggio conciso inserito tra doppi apici, che descrive brevemente le modifiche. Per esempio:
git commit -m "Add paragraph"
Ecco alcune convenzioni per il messaggio di commit. Sono essenziali per garantire chiarezza e comprensione tra tutti i membri del progetto:
- Usa il modo imperativo: Inizia il messaggio di commit con un verbo in modo imperativo (ad esempio, “Aggiungi,” “Risolvi,” “Aggiorna”). Per esempio, invece di “Aggiunto nuova funzione,” scrivi “Aggiungi nuova funzione.”
- Sia conciso ma descrittivo: Cerca di scrivere un messaggio breve, ma preferisci una descrizione chiara delle modifiche. Invece di “Cambiato cose,” scrivi “Aggiornato stile della barra di navigazione.”
- Evita messaggi generici: Evita messaggi vaghi come “Risolto bug” o “Miglioramenti.” Invece, specifica: “Risolto bug nell’validazione del form di login” o “Migliorata legibilità della documentazione.”
Caricamento delle tue modifiche con git push
Quando fai un commit, crei una fotografia delle modifiche sulla tua macchina locale. Per permettere agli altri di accedere alle tue modifiche, devi caricarle. Per fare questo, usi il comando push
.
La sintassi di base del comando push in Git è:
git push <remote> <branch>
Facciamo un’analisi:
<remote>
: Questo è il nome del repository remoto a cui vuoi inviare le tue modifiche. Per default, quando cloni un repository, il repository remoto è chiamato origin.<branch>
: Questo è il nome della branch delle modifiche che vuoi inviare al repository remoto. Se salti questo argomento, Git aggiornerà le modifiche in base alla branch corrente e alle configurazioni di tracciamento remoto.
Ecco alcuni casi d’uso comuni per git push
:
- Inviare modifiche dalla branch corrente:
git push
- Inviare le modifiche da una determinata branch:
git push origin <branch>
Scaricare le modifiche con git pull
Git consente a grandi team di lavorare simultaneamente sul medesimo progetto. Quando i colleghi modificano la stessa branch su cui stai lavorando, la tua branch locale può diventare obsoleta rispetto alla branch remota.
Per scaricare i commit di altre persone, usiamo il comando git pull
. La sintassi base del comando push in git è:
git pull <remote> <branch>
Ecco cosa fa ogni parametro:
<remote>
: questo è il nome del repository remoto da cui vuoi estrarre. Predefinito, questo repository si chiama origin.<branch>
: questo è il nome della branch da cui vuoi estrarre le modifiche. Se non specificato, git userà la branch corrente insieme alla sua branch upstream.
Ecco alcuni casi d’uso comuni di git pull
:
- Estrazione delle modifiche dalla branch corrente:
git pull
- Estrazione delle modifiche da una branch specifica:
git pull origin <branch>
Workflow commit-pull-push
Quando si utilizza Git, consiglio di prelevare frequentemente aggiornamenti per assicurarsi che la propria branch locale rimanga aggiornata. Vi consiglio di adeguarvi alle seguenti migliori pratiche:
- Prima di iniziare il tuo lavoro, preleva gli ultimi aggiornamenti per la tua branch corrente per assicurarti di lavorare sulla versione più recente.
- Committa spesso, garantendo che ogni commit sia focalizzato su piccole modifiche logicamente collegate.
- Dopo aver fatto alcune modifiche e aver creato un commit, preleva di nuovo per aggiornare la tua branch, nel caso qualcun altro abbia fatto aggiornamenti concorrenti.
- Infine, sposta le tue modifiche nel repository remoto.
Conflitti in Git
Quando si esegue il comando git pull per scaricare le modifiche da un repository remoto, è possibile trovarsi in una situazione dove un’altra committenza ha modificato le stesse righe delle vostre committenze locali. Git tenta di automaticamente unire le modifiche, e in molti casi, riesce nell’intento. Ad esempio, se le modifiche vengono fatte a parti differenti dello stesso file, Git può unire queste in maniera fluida perché le committenze influiscono su aree diverse.
Tuttavia, se te e un altro contributore avete modificato lo stesso paragrafo, git non sarà in grado di determinare quale versione mantenere, causando un conflitto di fusione. In questa situazione, dovrai risolvere manualmente il conflitto decidendo quali modifiche mantenere.
Per ulteriore guida sulla risoluzione di conflitti, vi consiglio di leggere questo articolo su come risolvere i conflitti di integrazione in Git.
Scarica da GitHub
In certi scenari, si desidera una copia locale di un repository per utilizzarlo senza l’intenzione di modificarlo. Se è un repository pubblico, non è necessario installare Git sulla macchina locale. È possibile scaricare direttamente il repository da GitHub cliccando sul pulsante Code poi sul pulsante Download Zip come mostrato qui sotto:
Conclusione
Il clone di Git consente di copiare un repository di Git sulla macchina locale, permettendoti di utilizzare il codice o estendendolo aggiungendo nuove funzionalità. Durante il clone di un repository, tutte le branch sono scaricate, che può consumare un quantitativo significativo dello spazio disco.
Le branch sono utilizzate per lavorare su modifiche o caratteristiche specifiche. Clonare una branch specifica ti consente di contribuire a quei cambiamenti senza scaricare il lavoro non correlato, richiedendo così molto meno spazio su disco e mantenendo il tuo disco locale più pulito.
Se vuoi imparare di più sul soggetto, ti consiglio questo GitHub e Git Tutorial per Principianti.
Source:
https://www.datacamp.com/tutorial/git-clone-branch-tutorial