google examples con apiclient git google-drive-sdk

git - examples - google-api-php-client



¿Puedo hacer push/pull directamente desde mi unidad de google en línea? (5)

No, no puedes. No hay git ejecutándose en la unidad de Google.

También sugeriría en contra de las soluciones basadas en Drive / Dropbox de Google, y optaría por una solución de hospedaje de git. Por ejemplo, Bitbucket que ofrece algunos repositorios privados gratuitos. Puede encontrar información de comparación sobre los diferentes sitios de hospedaje de git here .

Como han señalado las personas (y como OP ya sabe), puede colocar el repositorio desnudo dentro de su carpeta local de Google Drive / Dropbox y trabajar con eso, sin embargo, hay advertencias. Los servicios en la nube tienen sus propios sistemas para fusionar conflictos, y eso realmente no funciona con git. Considera el escenario:

  • Trabaja con el dispositivo A sin conexión, envía algunos commits al repositorio simple en la carpeta de Google Drive, pero como no está conectado, esos cambios no se sincronizan con la nube.

  • A continuación, te olvidas de él, trabajas con el dispositivo B en línea, envía confirmaciones a la carpeta de Google Drive y esos cambios se sincronizan.

  • El dispositivo A se pone en línea: ahora tiene un conflicto en Google Drive.

Esto es, por supuesto, recuperable, pero inconveniente. Por lo tanto, recomiendo utilizar una solución diseñada específicamente para el alojamiento de git.

Hay métodos para sincronizar mi repositorio de git local en mi unidad de Google a través de la aplicación de sincronización de Google Drive, pero me preguntaba si podría pasar por alto su necesidad por completo.

Fro eg.

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


Podría usar ItDuzzit , que proporciona sincronización directa de nube a nube entre Google Drive y GitHub. Tienen un nivel libre bastante limitado y varios pagos. Siempre que su código sea de código abierto y / o no le importe que un tercero lo maneje, esta podría ser una solución viable.


Si está ejecutando un shell de Unix y tiene Google Drive instalado localmente en su máquina, puede agregar un script a su archivo .bash_profile o .zshrc de esta manera ...

# 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 }

Suponiendo que ya ha ejecutado git init , puede escribir mkr desde la línea de comando dentro de su directorio de proyecto local. Después de este paso de mkr , puedes ejecutar git push normalmente como si viviera en GitHub, Bitbucket, etc. Simplemente no tendrás las sutilezas habituales desde el lado remoto.


Simplemente puede archivar sus carpetas de trabajo como mejor le parezca en Google Drive que cualquier otra copia de seguridad, por razones de coherencia puede automatizar esto con crontab o simplemente un script simple para archivar y luego cargar mediante las herramientas cli de Google Drive que funcionan mejor para tú.


Aquí hay un artículo muy bueno sobre el tema ( versión archivada aquí , con las partes relevantes reproducidas aquí):

Digamos que tienes un proyecto llamado johndoe con un archivo README como el siguiente:

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

Inicializa un repositorio de Git vacío aquí:

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

Cambia el directorio donde se encuentra tu Google Drive e inicializa un repositorio vacío:

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

Regrese a su directorio de trabajo:

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

Para clonar su repositorio Git de Google Drive:

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