Git --local-branching-on-the-cheap
Chapters ▾ 1st Edition

2.1 Basi di Git - Repository Git

Repository Git

Puoi creare un progetto Git principalmente con due approcci. Il primo prende un progetto esistente o una directory e la importa in Git. Il secondo clona un repository Git esistente, su un altro server.

Creare un repository in una directory preesistente

Se vuoi iniziare a tenere traccia con Git di un progetto esistente, devi andare nella directory del progetto e digitare:

$ git init

Questo creerà una nuova sottodirectory chiamata .git che conterrà tutti i file necessari per il tuo repository, una struttura del repository Git. A questo punto non è ancora stato tracciato niente del tuo progetto. (Vedi il Capitolo 9 per sapere quali file sono contenuti nella directory .git che hai appena creato.)

Se vuoi iniziare a tracciare i file esistenti (a differenza di una directory vuota), dovresti iniziare a monitorare questi file con una commit iniziale. Lo puoi fare con pochi git add, che specificano quali file vuoi tracciare, seguiti da una commit:

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

Tra un minuto vedremo cosa fanno questi comandi. A questo punto hai un repository Git con dei file tracciati e una commit iniziale.

Clonare un Repository Esistente

Se vuoi copiare 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 quasi tutti i dati che sono sul server. Quando esegui git clone vengono scaricate tutte le versioni di ciascun file della cronologia del progetto. Infatti, se si danneggiasse il disco del tuo server, potresti usare qualsiasi clone di qualsiasi client per ripristinare il server allo stato in cui era quando è stato clonato (potresti perdere alcuni hooks lato-server, ma tutte le versioni dei dati saranno presenti: vedi il Capitolo 4 per maggiori dettagli).

Cloni 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", dentro di questa inizializza una directory .git, scarica tutti i dati del repository e fa il checkout dell'ultima versione per poterci lavorare su. Se vai 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 sulla riga di comando:

$ 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 che un server può rendere disponibili per l'accesso al repository Git e i pro e i contro di ciascuna.