git clone (Italiano)

Qui esamineremo il comandogit clone in profondità. git clone è un’utilità da 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 qui sono:

  • Clonazione di un repository locale o remoto
  • Clonazione di un repository nudo
  • Utilizzo di opzioni poco profonde per clonare parzialmente i repository
  • Sintassi Git URL e protocolli supportati

Nella guida alla creazione di un repository, abbiamo trattato un caso d’uso di base di git clone. Questa pagina esplorerà scenari di clonazione e configurazione più complessi.,

Scopo: repo-to-repo collaboration development copy

Se un progetto è già stato impostato in un repository centrale, il comandogit clone è il modo più comune per gli utenti di ottenere una copia di sviluppo. Come git init, la clonazione è generalmente un’operazione una tantum. Una volta che uno sviluppatore ha ottenuto una copia funzionante, tutte le operazioni di controllo della versione e le collaborazioni sono gestite attraverso il loro repository locale.,

Collaborazione repo-to-repo

È importante capire che l’idea di Git di una “copia di lavoro” è molto diversa dalla copia di lavoro che si ottiene controllando il codice da un repository SVN. A differenza di SVN, Git non fa distinzione tra la copia di lavoro e il repository centrale: sono tutti repository Git a tutti gli effetti.

Questo 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 controllare una copia di lavoro nel repository centrale di SVN, si spingono o tirano i commit da un repository all’altro.

Naturalmente, non c’è nulla che ti impedisca di dare a determinati repository Git un significato speciale. Ad esempio, semplicemente designando un repository Git come repository “centrale”, è possibile replicare un flusso di lavoro centralizzato utilizzando Git. Il punto è che questo viene realizzato attraverso convenzioni piuttosto che essere cablato nel VCS stesso.,

Usage

git clone viene utilizzato principalmente per puntare a un repository esistente e fare un clone o una copia di quel repository in una nuova directory, in un’altra posizione. Il repository originale può essere posizionato sul filesystem locale o su protocolli supportati accessibili alla macchina remota. Il comandogit clone copia un repository Git esistente. Questo è un po ‘ come SVN checkout, tranne che la “copia di lavoro” è un repository Git a tutti gli effetti-ha una propria cronologia, gestisce i propri file ed è un ambiente completamente isolato dal repository originale.,

Per comodità, la clonazione crea automaticamente una connessione remota chiamata “origine” che rimanda al repository originale. Questo rende molto facile interagire con un repository centrale. Questa connessione automatica viene stabilita creando riferimenti Git alle teste di diramazione remote sottorefs/remotes/origin e inizializzandoremote.origin.url eremote.origin.fetch variabili di configurazione.

Un esempio che dimostra l’uso digit clone può essere trovato nella guida alla configurazione di un repository., L’esempio riportato di seguito viene illustrato come ottenere una copia locale del repository centrale memorizzati su un server accessibile a example.com utilizzando il nome utente SSH giovanni:

git clone ssh://[email protected]/path/to/my-project.git 
cd my-project
# Start working on the project

Il primo comando inizializza una nuova repository Git nel my-project cartella sul computer locale e di popolarlo con il contenuto del repository centrale. Quindi, è possibile cd nel progetto e iniziare a modificare i file, commettere istantanee, e interagire con altri repository., Si noti inoltre che l’estensione.git viene omessa dal repository clonato. Ciò riflette lo stato non nudo della copia locale.

Clonazione in una cartella specifica

git clone <repo> <directory>

Clona il repository situato in<repo> nella cartella chiamata~<directory>! sulla macchina locale.

Clonazione di un tag specifico

git clone --branch <tag> <repo>

Clona il repository situato in<repo> e clona solo il ref per<tag>.,

Shallow clone

git clone -depth=1 <repo>

Clona il repository situato in<repo> e clona solo la
cronologia dei commit specificati dall’opzione depth=1. In questo esempio viene creato un clone di <repo> e solo il commit più recente è incluso nel nuovo Repository clonato. La clonazione superficiale è molto utile quando si lavora con repository con una cronologia di commit estesa. Una cronologia di commit estesa può causare problemi di ridimensionamento come limiti di utilizzo dello spazio su disco e lunghi tempi di attesa durante la clonazione., Un clone superficiale può aiutare ad alleviare questi problemi di ridimensionamento.

Opzioni di configurazione

git clone-branch

L’argomento-branch consente di specificare un ramo specifico da clonare al posto del ramo a cui punta il remotoHEAD, di solito il ramo master. Inoltre è possibile passare un tag invece di ramo per lo stesso effetto.

git clone -branch new_feature git://remoterepository.git

Questo esempio precedente clonerebbe solo il ramonew_feature dal repository Git remoto., Questa è puramente un’utilità di convincimento per risparmiare tempo dal download diHEAD ref del repository e quindi dover recuperare ulteriormente il ref di cui hai bisogno.

git clone-mirror vs. git clone-bare

git clone bare bare

Simile a git init --bare, quando l’argomento -bare viene passato a git clone, una copia del repository remoto sarà fatto con una directory di lavoro omessa., Ciò significa che verrà impostato un repository con la cronologia del progetto che può essere spinta e tirato da, ma non può essere modificato direttamente. Inoltre, nessun ramo remoto per il repository verrà configurato con il repository-bare. Come git init --bare, questo viene utilizzato per creare un repository ospitato che gli sviluppatori non modificheranno direttamente.

git clone mirror mirror

Passando l’argomento--mirror passa implicitamente anche l’argomento--bare., Ciò significa che il comportamento di --bare è ereditato da --mirror. Risultato in un repository nudo senza file di lavoro modificabili. Inoltre,--mirror clonerà tutti i refs estesi del repository remoto e manterrà la configurazione di tracciamento dei rami remoti. È quindi possibile eseguire l’aggiornamentogit remote sul mirror e sovrascriverà tutti i refs dal repository di origine. Dando esatta funzionalità ‘mirroring’.,

Altre opzioni di configurazione

Per un elenco completo di altre opzioni di clone di git visita la documentazione ufficiale di Git. In questo documento, toccheremo alcune altre opzioni comuni.

git clone template template

git clone --template=<template_directory> <repo location>

Clona il repository a<repo location> e applica il modello da<template directory> al ramo locale appena creato. Un aggiornamento approfondito sui modelli Git può essere trovato sulla nostra paginagit init.,

URL Git

Git ha una propria sintassi URL che viene utilizzata per passare posizioni di repository remoti ai comandi Git. Poiché git clone è più comunemente usato nei repository remoti, esamineremo qui la sintassi dell’URL Git.

Git URL protocols

-SSH

Secure Shell (SSH) è un protocollo di rete autenticato onnipresente che viene comunemente configurato di default sulla maggior parte dei server. Poiché SSH è un protocollo autenticato, è necessario stabilire le credenziali con il server di hosting prima di connettersi., ssh://host.xz/path/to/repo.git/

– GIT

– HTTP

Hyper text transfer protocol. Il protocollo del web, più comunemente usato per il trasferimento di dati HTML di pagine web su Internet. Git può essere configurato per comunicare su HTTP

Sommario

In questo documento abbiamo dato un’occhiata approfondita agit clone. I take away più importanti sono:
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 connettersi a repository remoti

4., Sono disponibili molte opzioni di configurazione diverse che modificano il contenuto del clone

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Vai alla barra degli strumenti