Lavorando con Git si può sentire l’esigenza di un repository privato e condiviso tra diversi computer. Se non volete spendere soldi GitHub non è un’opzione dato che i suoi repo privati sono a pagamento. L’alternativa naturale è BitBucket, che da qualche tempo supporta Git e consente la creazione gratuita di repository privati.
Usare Dropbox come repository Git remoto
Recentemente, più che altro per curiosità, ho giocato con una terza opzione: Dropbox. Per me Dropbox è uno strumento indispensabile sia per il lavoro che per le mie cose personali. Su qualunque computer io sia, ovunque mi trovi, grazie a Dropbox ho accesso al mio materiale. Dunque, mi son detto, perché non usarlo anche per il codice, pur senza rinunciare al controllo versione offerto da Git?
Ebbene ho scoperto che non solo è possibile, è anche molto semplice. In realtà non c’è nulla di nuovo in quel che vi mostro, la ‘magia’ la fa tutta Dropbox.
Creare un Git repository ‘remoto’ su Drobox
Se siete su Linux o Mac aprite una finestra terminale; su Windows aprite semplicemente Git Bash. Se avete una installazione predefinita la cartella Dropbox si trova nella HOME di Linux e Mac, oppure nella Documenti di Windows.
Spostatevi nella cartella Dropbox:
cd ~ cd Dropbox
Una volta entrati in ~/Dropbox create un ‘bare’ repository:
mkdir progetto1 cd progetto1 git --bare init
Il nostro repository privato, l’equivalente di un repo remoto alla GitHub per capirci, è pronto. Lo useremo per tenere sincronizzati i nostri computer. Naturalmente appoggiarci a Dropbox ci garantisce anche la possibilità di ricorrere a un restore di emergenza nel caso il codice venga perduto localmente.
Creare il Git repository locale
Su ognuno dei computer creiamo il repository locale:
cd ~ mkdir progetto1 cd progetto1 git init
Lavoriamo un po’, quindi facciamo la nostra commit locale:
touch testo1.txt testo2.txt test.py echo "aggiungo del testo a testo" > testo1.txt git add * git commit -m 'commit iniziale'
Ora colleghiamo il repo “remoto” (quello in Dropbox) al nostro repository locale:
git remote add origin ~/Dropbox/progetto1
Ora possiamo fare il push verso il remoto dei files locali. Dal branch [cci lang=”bash” theme=”default”]master[/cci] verso [cci lang=”bash” theme=”default”]origin[/cci]:
git push origin master
Fatto! Possiamo simulare facilmente il lavoro su un’altro computer. Basta clonare [cci lang=”bash” theme=”default”]progetto[/cci] dal ‘remoto’, cambiare qualche file e salvarlo:
cd ~ git clone ~/Dropbox/progetto1 test_clone cd test_clone ls > testo2.txt git commit testo2.txt -m 'qualche modifica' git push origin master
Torniamo ora al folder locale originale. Possiamo sincronizzarlo e aggiornarlo con le modifiche fatte sul “secondo computer”:
cd ~ cd progetto1 git pull origin master
Il versioning di Dropbox
Dropbox è dotato di un proprio sistema di versioning, pertanto aggiungere Git potrebbe sembrare superfluo. Qualunque sviluppatore avvezzo a Git vi dirà che non è così. Il versioning di Dropbox è adatto a file di testo, fogli di calcolo, immagini e quant’altro ma non ha niente a che vedere con le capacità di manutenzione e gestione dei progetti offerte da Git.
Git e Dropbox per gruppi di lavoro?
E’ sufficiente condividere il folder Dropbox con altre persone per creare un ambiente di sviluppo privato ma condiviso col proprio gruppo di lavoro. In quest’ultimo caso la probabilità di conflitti aumenta notevolmente. Si tratta di una soluzione forse interessante per mini-team di 2 o 3 persone nei quali è relativamente facile evitare la generazione di conflitti (evitare le push contemporanee).
Concludendo
BitBucket o GitHub (a pagamento) rimangono la soluzione ideale, e offrono molte funzionalità comunque assenti in Git+Dropbox (interfaccia web, wiki, issues, eccetera). Per piccoli progetti personali Dropbox offre una alternativa a buon mercato, rapida e comoda.
PS: se create un account Dropbox dal link dell’articolo, oppure da questo, ricevete 500BMB extra (e altrettanti ne otterrà il sottoscritto)!