Alessio Forti

Repository private con Git e Dropbox

Non avete voglia di comprare un server privato dove mantenere le vostre repository? Non volete pagare GitHub per mantenere le vostre repository private? Proprio non avete voglia di creare un account su BitBucket e su Amazon AWS ci sono troppi acronimi per capirci qualcosa? Allora vi propongo una soluzione molto semplice per ovviare a tutto questo: salviamo le nostre repository su Dropbox.

Ovviamente questa procedura ha dei vantaggi e degli svantaggi: i pro sono la facilità e la velocità con cui si può inizializzare la repo e condividerla con collaboratori selezionati. Dall’altra parte lo svantaggio è che, quando si esegue un pull sulla repo, i file vengono scritti su disco e caricati per poi essere distribuiti a tutti i collaboratori, con un conseguente delay nella sincronizzazione. Quindi questa soluzione può essere utile per repository personali, in cui per esempio un utente lavora allo stesso progetto magari da diversi computer, oppure per piccoli gruppi di lavoro che collaborano allo stesso progetto.
Bene, troppe parole. Vediamo quanto è semplice realizzare una cosa del genere.

Presupponendo che Git sia installato correttamente e abbiamo la cartella Dropbox nel nostro computer, la prima cosa da fare è aprire un Terminale e fare un cd in Dropbox:

$ cd ~/Dropbox/repos

io ho deciso di contenere tutti questi tipi di file in un’unica cartella chiamata repos. Il passo seguente è quello di creare una nuova repository “vergine”, che conterrà solo i file di Git:

$ git init --bare LaMiaRepo.git

Et voilà! Ora non ci resta che clonarla nella cartella dove intenderemo lavorare:

$ git clone ~/Dropbox/repos/MyProject.git ~/Percorso/Per/LaMiaRepo/

se tutto è andato bene non bisogna fare altro che iniziare a lavorare sulla cartella in cui abbiamo clonato la repo!

A questo punto possiamo anche decidere con chi condividere la cartella della repository da Dropbox. Và da se che i nostri collaboratori l’unica cosa che si devono ricordare di fare è il clone della repo. Semplice no?