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

Chapter 4

Git sul server

A questo punto, si dovrebbe essere in grado di fare la maggior parte dei compiti quotidiani che si devono fare con Git. Tuttavia, al fine di fare una qualsiasi collaborazione in Git, bisogna avere un repository remoto Git. Anche se è possibile tecnicamente spingere modifiche e tirare le modifiche da repository individuali, procedere in questo modo è sconsigliato, perché se non si sta attenti, ci si può confondere abbastanza facilmente riguardo a quello su cui si sta lavorando. Inoltre, si vuole che i collaboratori siano in grado di accedere al repository, anche se il computer non è in linea - avere un repository comune più affidabile spesso è utile. Pertanto, il metodo preferito per collaborare con qualcuno, è quello di creare un repository intermedio a cui avere accesso entrambi e spingere e tirare da questo. Si farà riferimento a questo repository come un “server Git”; ma si noterà che in genere ospitare un repository Git ha bisogno di una piccola quantità di risorse, quindi raramente c’è bisogno di usare un intero server per esso.

Avviare un server Git è semplice. In primo luogo, si sceglie quali protocolli si desidera utilizzare per comunicare con il server. La prima sezione di questo capitolo descriverà i protocolli disponibili con i pro e i contro di ciascuno. La sezione seguente spiegherà alcune impostazioni tipiche nell’utilizzo di questi protocolli e come utilizzarle nel proprio server. Infine, se non si hanno problemi a fare ospitare il proprio codice su un server di qualcun altro e se si vuole dedicare del tempo alla creazione e al mantenimento di un proprio server, si prenderà in considerazione qualche opzione per l’hosting.

Se non si ha interesse a gestire il proprio server, è possibile passare all’ultima sezione del capitolo per vedere alcune opzioni per la creazione di un account hosting e poi saltare al capitolo successivo, dove si discutono i flussi in ingresso e uscita in un ambiente distribuito per il controllo del codice sorgente.

Un repository remoto è in genere un bare repository cioè un repository Git che non ha la cartella di lavoro. Essendo che il repository viene utilizzato solo come un punto di collaborazione, non c’è ragione di avere uno snapshot estratto dal disco, ma solo i dati Git. In termini più semplici, un repository nudo è il contenuto della cartella .git del progetto e nient’altro.