web-dev-qa-db-fra.com

Puis-je pousser/tirer directement depuis mon lecteur google en ligne?

Il existe des méthodes pour synchroniser mon référentiel git local sur mon lecteur google via l'application Windows sync drive, mais je me demandais si je pouvais me passer de son besoin. 

Ex. 

$ git remote add Origin https://drive.google.com/<my_folder>/<my_repository>.git
$ git Push github master
43
laggingreflex

Non, tu ne peux pas. Il n'y a pas de git sur Google Drive.

Je recommanderais également les solutions Google basées sur le lecteur/Dropbox et opterais plutôt pour une solution d'hébergement git. Par exemple Bitbucket qui propose des dépôts privés gratuits. Vous pouvez trouver des informations de comparaison sur différents sites d’hébergement git ici .

Comme les gens l'ont déjà souligné (et OP le sait déjà), vous pouvez placer le référentiel nu dans votre dossier Google Drive/Dropbox local et l'utiliser, mais des mises en garde s'imposent. Les services cloud ont leurs propres systèmes de fusion des conflits, ce qui ne fonctionne pas vraiment avec git. Considérez le scénario:

  • Vous travaillez avec le périphérique A hors ligne, transmettez certains commits au référentiel nu du dossier Google Drive, mais comme vous êtes hors connexion, ces modifications ne sont pas synchronisées avec le nuage.

  • Vous avez ensuite oublié de travailler avec le périphérique B en ligne, les commits Push dans le dossier Google Drive et ces modifications sont synchronisées.

  • Le périphérique A devient en ligne. Vous avez maintenant un conflit dans Google Drive.

Ceci est, bien sûr, récupérable, mais peu pratique. Je recommande donc d'utiliser une solution conçue précisément pour l'hébergement git.

39
1615903

Voici un très bon article sur le sujet ( version archivée ici , avec les parties pertinentes reproduites ici):

Disons que vous avez un projet nommé johndoe avec un fichier README comme ci-dessous:

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

Initialisez un dépôt Git vide ici:

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

Modifiez le répertoire dans lequel se trouve votre lecteur Google et initialisez un référentiel nu:

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

Retournez à votre répertoire de travail:

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

Pour cloner votre référentiel Git à partir de Google Drive:

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

Si vous utilisez un shell Unix et que Google Drive est installé localement sur votre ordinateur, vous pouvez ajouter un script à votre fichier .bash_profile ou .zshrc comme ceci ...

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

En supposant que vous avez déjà exécuté git init, vous pouvez taper mkr à partir de la ligne de commande dans le répertoire de votre projet local. Après cette étape mkr, vous pouvez exécuter git Push comme d'habitude, comme s'il se trouve sur GitHub, Bitbucket, etc.

1
bholben

Vous pouvez utiliser itDuzzit , ils fournissent une synchronisation directe de cloud à cloud entre Google Drive et GitHub. Ils ont un niveau assez limité gratuit et plusieurs payants. Tant que votre code est opensource et/ou qu'un tiers le manipule, cela pourrait être une solution viable.

1
A.R.

Vous pouvez simplement archiver vos dossiers de travail comme vous le souhaitez sur Google Drive, comme pour toute autre sauvegarde. Par souci de cohérence, vous pouvez l’automatiser à l’aide de crontab ou tout simplement d’un simple script à archiver puis à télécharger via des outils en ligne de vous. 

0
Spencer