Dopo aver illustrato ed appreso, nei precedenti articoli, i comandi git di uso quotidiano, vediamo in questo articolo come realizzare un repository git remoto in modo da favorire la collaborazione di più persone ad uno stesso progetto o a più progetti.
Creare un repository remoto equivale a dare la possibilità a più persone, che partecipano al progetto, di tenere aggiornato il proprio progetto locale mediante delle operazioni di pull dal repository remoto e di aggiornare il repository remoto, condiviso col team, mediante operazioni di push.
In generale un repository remoto è un bare repository , un repository privo della working directory, che viene usato come mero punto di collaborazione. In pratica un bare repository non è altro che il contenuto del tuo progetto git, contenente le istantanee del progetto, che risiede all’interno della cartella .git.
Git per gestire il trasferimento dei dati da e verso il repository remoto può avvalersi di quattro protocolli, Local, HTTP, Secure Shell (SSH) and Git.
Illustriamo ora come creare un repository remoto utilizzando il protocollo SSH.
La prima cosa da fare, per inizializzare un server git, è quella di esportare un repository esistente in un nuovo bare repository.
Supponiamo di avere un progetto gestito con git all’interno della cartella progetto_uno del nostro computer, e di avere accesso come amministratore ad un server linux con installato un server SSH, cominciamo quindi a creare un “bare repository” mediante il comando git clone con l’opzione –bare:
git clone --bare progetto_uno progetto_uno.git
Dopo aver impartito il comando precedente sul nostro computer, si avrà una copia del contenuto della cartella .git presente nella cartella progetto_uno nella nuova cartella progetto_uno.git.
Bisogna ora spostare la nuova cartella, progetto_uno.git, nel server remoto mediante il comando seguente:
scp -r progetto_uno.git utente@indirizzo-server:/percorso-sul-server
A questo punto un qualunque utente, che abbia accesso al server mediante SSH e che abbia i permessi di lettura per la cartella percorso-sul-server.git, può clonare il repository sulla propria macchina mediante il comando seguente:
git clone utente@indirizzo-server:/percorso-sul-server/progetto_uno.git
Se il suddetto utente possiede anche i permessi di scrittura per la cartella progetto_uno.git, allora potrà, dopo aver apportato cambiamenti al repository precedentemente scaricato dal server, aggiornare il repository remoto mediante un’operazione di push e condividere così il proprio contributo con gli altri partecipanti, che a loro volta possono aggiornare la loro copia locale del progetto mediante un’operazione di pull dal server.
I video seguenti illustrano lo scenario suesposto utilizzando due modalità diverse: