git clone
In questa sezione esamineremo a fondo il comando git clone
. git clone
è un'utilità della riga di comando Git che viene utilizzata per indirizzare un repository esistente e creare un clone o una copia del repository di destinazione. In questa pagina parleremo delle opzioni di configurazione estese e dei casi d'uso comuni di git clone
. Alcuni punti che tratteremo sono:
- Clonazione di un repository locale o remoto
- Clonazione di un repository bare
- Utilizzo di opzioni minime per la clonazione parziale dei repository
- Protocolli supportati e sintassi URL Git
Nella sezione sulla configurazione di una guida al repository, abbiamo esaminato un caso d'uso di base di git clone
. In questa pagina analizzeremo scenari di clonazione e configurazione più complessi.
Scopo: copia di sviluppo della collaborazione da repository a repository
Se un progetto è già stato configurato in un repository centrale, il comando git clone
è il modo più comune tramite cui gli utenti possono ottenere una copia di sviluppo. Come con git init
, la clonazione è generalmente un'operazione una tantum. Una volta che uno sviluppatore ha ottenuto una copia di lavoro, tutte le operazioni di controllo della versione e le collaborazioni vengono gestite tramite il proprio repository locale.
Collaborazione da repository a repository
È importante comprendere che l'idea di Git di "copia di lavoro" è molto diversa dalla copia di lavoro che si ottiene estraendo il codice da un repository SVN. A differenza di SVN, Git non fa distinzione tra la copia di lavoro e il repository centrale: sono entrambi repository Git a tutti gli effetti.
Ciò rende la collaborazione con Git fondamentalmente diversa da quella con SVN. Mentre SVN dipende dalla relazione tra il repository centrale e la copia di lavoro, il modello di collaborazione di Git si basa sull'interazione tra repository e repository. Invece di inserire una copia di lavoro nel repository centrale di SVN, si esegue il push o il pull dei commit da un repository all'altro.
materiale correlato
Branch Git
Scopri la soluzione
Impara a utilizzare Git con Bitbucket Cloud
Naturalmente, non c'è niente che ti impedisca di dare un significato speciale a determinati repository Git. Ad esempio, semplicemente designando un repository Git come repository "centrale", è possibile replicare un flusso di lavoro centralizzato utilizzando Git. Il punto è che ciò viene realizzato attraverso convenzioni piuttosto che essere integrato in VCS stesso.
Utilizzo
git clone
viene utilizzato principalmente per puntare a un repository esistente e creare un clone o una copia di tale repository in una nuova directory, in un'altra posizione. Il repository originale può trovarsi sul filesystem locale o su protocolli supportati accessibili dal computer remoto. Il comando git clone
copia un repository Git esistente. È un po' come il processo di estrazione di SVN, ad eccezione del fatto che la "copia di lavoro" è un repository Git a tutti gli effetti: ha la sua cronologia, gestisce i propri file ed è un ambiente completamente isolato dal repository originale.
Per comodità, la procedura di clonazione crea automaticamente una connessione remota chiamata" origine" che punta al repository originale. In questo modo è molto facile interagire con un repository centrale. Questa connessione automatica viene stabilita creando riferimenti Git alla base del branch remoto in refs/remotes/origin
e inizializzando le variabili di configurazione remote.origin.url
e remote.origin.fetch
.
È possibile trovare un esempio che dimostra l'utilizzo di git clone
nella guida alla configurazione di un repository. L'esempio seguente mostra come ottenere una copia locale di un repository centrale archiviato su un server accessibile su example.com
utilizzando il nome utente SSH john:
git clone ssh://john@example.com/path/to/my-project.git
cd my-project
# Start working on the project
Il primo comando inizializza un nuovo repository Git nella cartella my-project
sul computer locale e lo popola con il contenuto del repository centrale. Quindi, puoi avviare cd nel progetto e iniziare a modificare i file, eseguire il commit delle snapshot e interagire con altri repository. Osserva inoltre che l'estensione .git
viene omessa dal repository clonato. Ciò riflette lo stato non-bare della copia locale.
Clonazione in una cartella specifica
git clone <repo> <directory>
Clona il repository che si trova in ~
Clonazione di un tag specifico
git clone --branch <tag> <repo>
Clona il repository che si trova in
Clonazione minima
git clone -depth=1 <repo>
Clona il repository che si trova in
Opzioni di configurazione
git clone -branch
L'argomento -branch
consente di specificare un branch specifico da clonare invece del branch a cui punta l'HEAD
remoto, di solito il branch principale. Inoltre, puoi inviare un tag invece di un branch per ottenere lo stesso effetto.
git clone --branch
Confronto tra git clone -mirror e git clone -bare
git clone --bare
Analogamente a git init --bare
, quando l'argomento -bare
viene inviato a git clone
, una copia del repository remoto verrà creata con una directory di lavoro omessa. Ciò significa che verrà configurato un repository con la cronologia del progetto di cui può essere eseguito il push e il pull, ma che non può essere modificata direttamente. Inoltre, nessun branch remoto del repository verrà configurato con il repository -bare
. Come con git init --bare
, ciò viene utilizzato per creare un repository ospitato che gli sviluppatori non modificheranno direttamente.
git clone --mirror
Quando viene inviato l'argomento --mirror
, viene inviato implicitamente anche l'argomento --bare
. Ciò significa che il comportamento di --bare
è ereditato da --mirror
. Il risultato è un repository bare senza file di lavoro modificabili. Inoltre, --mirror
clonerà tutti i riferimenti estesi del repository remoto e manterrà la configurazione di monitoraggio del branch remoto. È quindi possibile eseguire l'aggiornamento git remote
sul mirror che sovrascriverà tutti i riferimenti dal repository di origine, creando l'esatta funzionalità con mirroring.
Altre opzioni di configurazione
Per un elenco completo delle altre opzioni di git clone , visita la documentazione ufficiale di Git. In questo documento accenneremo alcune altre opzioni comuni.
git clone --template
git clone --template=<template_directory> <repo location>
Clona il repository in al branch locale appena creato. Un riferimento completo sui modelli Git è disponibile nella nostra pagina su git init.
URL Git
Git ha la sua propria sintassi URL che viene utilizzata per inviare le posizioni dei repository remoti ai comandi Git. Poiché git clone
è più comunemente usato sui repository remoti, esamineremo qui la sintassi URL Git.
Protocolli URL Git
'-SSH
Secure Shell (SSH) è un protocollo di rete autenticato comune che viene generalmente configurato come predefinito sulla maggior parte dei server. Poiché SSH è un protocollo autenticato, è necessario stabilire le credenziali con il server di hosting prima di connettersi. ssh://[user@]host.xz[:port]/path/to/repo.git/
'- GIT
Un protocollo univoco di Git. Git viene fornito con un daemon eseguito sulla porta (9418). Il protocollo è simile a SSH, ma NON PREVEDE L'AUTENTICAZIONE. git://host.xz[:port]/path/to/repo.git/
'- HTTP
Protocollo di trasferimento ipertestuale. Il protocollo del web, più comunemente utilizzato per il trasferimento di dati HTML di pagine web su Internet. Git può essere configurato per la comunicazione tramite HTTP http[s]://host.xz[:port]/path/to/repo.git/
Riepilogo
In questo documento abbiamo analizzato nei dettagli git clone
. I concetti più importanti sono:
1. git clone
viene utilizzato per creare una copia di un repository di destinazione
2. Il repository di destinazione può essere locale o remoto
3. Git supporta alcuni protocolli di rete per la connessione ai repository remoti
4. Sono disponibili molte opzioni di configurazione diverse che modificano i contenuti del clone
Per ulteriori riferimenti più approfonditi sulla funzionalità di git clone
, consulta la documentazione ufficiale di Git. Inoltre, nella nostra guida alla configurazione di un repository, sono riportati esempi pratici di git clone.
Condividi l'articolo
Argomento successivo
Letture consigliate
Aggiungi ai preferiti queste risorse per ricevere informazioni sui tipi di team DevOps e aggiornamenti continui su DevOps in Atlassian.