2013-04-11 9 views
35

Ci sono metodi per sincronizzare il mio repository git locale sul mio disco google tramite l'applicazione google drive sync windows, ma mi chiedevo se avrei potuto ignorarne del tutto il bisogno.Posso spingere/tirare direttamente dal mio disco google online?

Per esempio.

$ git remote add origin https://drive.google.com/<my_folder>/<my_repository>.git 
$ git push github master 
+0

Ι Sono in grado di creare un tale strumento .... bisogno di più su roba server GIT. – Michael

risposta

29

No, non è possibile. Non c'è git in esecuzione su Google Drive.

Vorrei anche suggerire contro le soluzioni basate su Google Drive/Dropbox e scegliere invece una soluzione di hosting git. Ad esempio Bitbucket che offre alcuni repository privati ​​gratuiti. È possibile trovare alcune informazioni di confronto su diversi siti di hosting git here.

Come le persone hanno sottolineato (e come già sa OP), è possibile inserire il repository nudo all'interno della propria cartella Google Drive/Dropbox locale e lavorare con esso, tuttavia, ci sono avvertimenti. I servizi cloud hanno i loro sistemi per unire i conflitti e questo non funziona davvero con git. Si consideri lo scenario:

  • Si lavora con il dispositivo A offline, spingere alcuni commit al repository nudo in cartella Google Drive, ma perché si è in linea, tali modifiche non vengono sincronizzate al cloud.

  • Si dimentica, lavora con il dispositivo B in linea, invia il commit alla cartella Google Drive e tali modifiche vengono sincronizzate.

  • Il dispositivo A diventa online - ora hai un conflitto in Google Drive.

Questo è, naturalmente, recuperabile, ma non conveniente. Raccomando quindi di utilizzare una soluzione progettata appositamente per git hosting.

+3

è possibile, controllare altre risposte, la risposta accettata deve essere cambiata. –

+0

@AmrLotfy Non è possibile il modo in cui l'OP vuole. Avere il repository nudo nella cartella di Google non è quello che sta chiedendo. – 1615903

+1

@ user1615903 'Suggerisco anche contro le soluzioni basate su Google Drive/Dropbox' Perché così? –

1

È possibile utilizzare itDuzzit, forniscono la sincronizzazione diretta cloud-to-cloud tra Google Drive e GitHub. Hanno un numero limitato free tier e diversi a pagamento. Finché il tuo codice è opensource e/o non ti dispiace che una terza parte lo gestisca, questa potrebbe essere una soluzione praticabile.

+1

Ora defunto: http: //cloud.itduzzit.it/ –

17

Here is a very good article sull'argomento (archived version here, rispetto alle corrispondenti parti riprodotte qui):

Diciamo che avere un progetto denominato johndoe con un file README come di seguito:

/var/www/html/johndoe/ 
/var/www/html/johndoe/README 

inizializzare un vuoto Git repository qui:

$ cd /var/www/html/johndoe 
$ git init 
$ git add README 
$ git commit README -m "Initial commit." 

Modificare la directory in cui si trova il tuo Google Drive e inizializzare una nuda repository:

$ cd /Users/myusername/Google\ Drive/ 
$ mkdir johndoe 
$ cd johndoe 
$ git init --bare 

tornare alla vostra directory di lavoro:

$ cd /var/www/html/johndoe 
$ git remote add origin file:///Users/myusername/Google\ Drive/johndoe 
$ git push origin master 

per clonare il vostro repository Git da Google Drive:

$ cd /var/www/html/johndoe2 
$ git clone file:///Users/myusername/Google\ Drive/johndoe 
+0

FWIW funziona solo su Windows. – refi64

+0

L'articolo collegato è 404'ing. –

+1

@ Michael archiviato [qui] (https://web.archive.org/web/20161204062829/http://kahthong.com/2012/05/how-use-google-drive-or-dropbox-host-your- private-git-repositories) – user1712447

0

Se si sta utilizzando una shell Unix e Google Drive è installato localmente sul proprio computer, è possibile aggiungere uno script al file .bash_profile o .zshrc in questo modo ...

# Initialize a remote repo on "local" Google Drive and push to it for safekeeping. 
function mkr() { 
    CWD=$(PWD) 
    REPONAME=${PWD##*/} 
    REPOPATH=/Users/Bob/Google\ Drive/Repos/$REPONAME 
    mkdir -p $REPOPATH 
    cd $REPOPATH 
    git init --bare 
    cd $CWD 
    git remote add origin $REPOPATH 
    git push origin master 
} 

Supponendo di avere già eseguito git init, è possibile digitare mkr dalla riga di comando all'interno della vostra cartella del progetto locale. Dopo questo passaggio mkr, è possibile eseguire normale git push come se fosse presente su GitHub, Bitbucket, ecc. Semplicemente non avrai le solite sottigliezze dal lato remoto.

-1

È possibile utilizzare lo strumento gdrive di prasmussen: https://github.com/prasmussen/gdrive.

È disponibile per OSX, Linux e Windows.

Non ho ancora utilizzato questo strumento in modo considerevole per valutare.

0

Puoi semplicemente archiviare le cartelle di lavoro come meglio credi su Google Drive come faresti con qualsiasi altro backup, per motivi di coerenza puoi automatizzarlo con crontab o semplicemente un semplice script da archiviare, quindi caricare tramite strumenti di Google Drive. quello funziona meglio per te.

+0

OP vorrebbe utilizzare l'interfaccia git per accedere a Google Drive, il tuo suggerimento non è correlato alle sue esigenze. –

+0

Si applica il tempo passato. È responsabilità dell'utente pubblicare una query per supportare fino a quando l'integrazione di Google Drive è soddisfacente. – Spencer

Problemi correlati