This is an in-progress translation.
To help translate the book, please fork the book at GitHub and push your contributions.

Ottenere un repository Git

Puoi creare un progetto Git usando due approcci principali. Il primo prende un progetto esistente o una directory e la importa in Git. Il secondo clona un repository Git esistente da un altro server.

Inizializzare un repository in una directory esistente

Se stai iniziando a tracciare un progetto esistente con Git, devi posizionarti nella directory del progetto e digitare:

$ git init

Questo creerà una nuova sottodirectory chiamata .git che conterrà tutti i file necessari per il repository — uno scheletro del repository Git. A questo punto, niente del tuo progetto è tracciato ancora. (Vedi il Capitolo 9 per avere maggiori informazioni esatte sui file che sono contenuti nella directory .git che hai appena creato.)

Se vuoi iniziare a tracciare i file esistenti (al contrario di una directory vuota), dovresti iniziare a monitorare questi file eseguendo un commit iniziale. Lo puoi fare con pochi comandi che specificano quali file vuoi controllare, seguiti da un commit:

$ git add *.c
$ git add README
$ git commit -m 'initial project version'

Vedremo in seguito velocemente cosa fanno questi comandi. A questo punto hai un repository Git con dei file tracciati ed un commit iniziale.

Clonare un repository esistente

Se vuoi avere la copia di un repository Git esistente — per esempio, un progetto a cui vuoi contribuire — il comando di cui hai bisogno è git clone. Se hai familiarità con altri sistemi VCS come Subversion, noterai che il comando è clone e non checkout. Questa è una distinzione importante — Git riceve una copia di circa tutti i dati che un server possiede. Ogni versione di ogni file della storia del progetto sono scaricate quando lanci git clone. Infatti, se il disco del tuo server è corrotto, puoi usare qualsiasi clonazione di qualsiasi client per ripristinare il server allo stato in cui era quando è stato clonato (puoi perdere alcuni agganci server, ma tutte le versioni dei dati saranno presenti — vedi il Capitolo 4 per maggiori dettagli).

Clona un repository con git clone [url]. Per esempio, se vuoi clonare la libreria Ruby Git chiamata Grit, puoi farlo così:

$ git clone git://github.com/schacon/grit.git

Questo comando crea un directory “grit”, inizializza una directory .git dentro di essa, scarica tutti i dati per questo repository ed imposta la copia di lavoro dell’ultima versione. Se entri nella nuova directory grit, vedrai i file del progetto, pronti per essere modificati o usati. Se vuoi clonare il repository in una directory con un nome diverso da grit, puoi specificarlo come opzione successiva al comando da terminale:

$ git clone git://github.com/schacon/grit.git mygrit

Questo comando fa la stessa cosa del precedente, ma la directory di destinazione è chiamata mygrit.

Git può usare differenti protocolli di trasferimento. L’esempio precedente usa il protocollo git://, ma puoi anche vedere http(s):// o user@server:/path.git, che usa il protocollo di trasferimento SSH. Il Capitolo 4 introdurrà tutte le opzioni disponibili che il server può impostare per farti accedere al repository Git ed i pro e i contro di ognuna.