我可以直接从谷歌驱动器在线推/拉吗?

时间:2013-04-11 11:23:45

标签: git google-drive-api

有一些方法可以通过谷歌驱动器同步窗口应用程序将我的本地git存储库同步到我的谷歌驱动器,但我想知道我是否可以完全绕过它的需要。

例如。

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

7 个答案:

答案 0 :(得分:39)

不,你不能。 Google驱动器上没有git运行。

我还建议不要使用基于谷歌驱动器/ Dropbox的解决方案,而是选择git托管解决方案。例如Bitbucket提供一些免费的私有存储库。您可以找到有关不同git托管网站here的一些比较信息。

正如人们已经指出的那样(并且OP已经知道),您可以将裸存储库放在本地Google Drive / Dropbox文件夹中并使用它,但是,有一些警告。云服务有自己的系统来合并冲突,而这并不适用于git。考虑一下情景:

  • 您使用设备A离线工作,将一些提交推送到Google云端硬盘文件夹中的裸存储库,但由于您处于离线状态,这些更改不会同步到云端。

  • 然后您忘了它,在线使用设备B,将提交推送到Google云端硬盘文件夹,这些更改会同步。

  • 设备A上线 - 您现在在Google云端硬盘中存在冲突。

这当然是可以恢复的,但不方便。因此,我建议使用专为git托管而设计的解决方案。

答案 1 :(得分:20)

Here is a very good article关于这个主题(archived version here,相关部分在这里转载):

假设您有一个名为johndoe的项目,文件README如下所示:

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

在这里初始化一个空的Git存储库:

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

将目录更改为Google云端硬盘所在的位置并初始化裸存储库:

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

返回工作目录:

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

从Google云端硬盘克隆您的Git存储库:

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

答案 2 :(得分:2)

您可以使用itDuzzit,它们可以在Google云端硬盘和GitHub之间提供直接的云到云同步。他们有相当有限的free tier和几个付费的。只要您的代码是开源和/或您不介意第三方处理它,这可能是一个可行的解决方案。

答案 3 :(得分:1)

如果您正在运行Unix shell并在您的计算机上本地安装了Google Drive,则可以将脚本添加到.bash_profile或.zshrc文件中,如下所示......

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

假设您已经运行git init,则可以从本地项目目录中的命令行键入mkr。在这个mkr步骤之后,您可以像正常一样运行git push,就好像它存在于GitHub,Bitbucket等等。您将无法从远程端获得通常的细节。

答案 4 :(得分:0)

您可以像在任何其他备份中一样将您的工作文件夹归档到Google云端硬盘上,为了保持一致性,您可以使用crontab自动执行此操作,或只是将一个简单的脚本归档,然后通过Google云端硬盘cli工具上传最适合你。

答案 5 :(得分:0)

Eduardo Rosas有article,介绍如何使用colab(仅需要浏览器)来执行此操作。 本质上,您使用以下命令访问Google驱动器:

from google.colab import drive
drive.mount('/content/gdrive')
#cd to the google drive you using the magic command
%cd /content/gdrive/'My Drive'/[your drive folder for repo]
#check your directory location with
!pwd
#clone your repo - Note this exposes your password so don't make the notebook public
!git clone https://LaloCo:password%23@github.com/LaloCo/handson-ml.git
#I find using a github personal access token easier
!git clone https://user:PAT@github.com/repo

答案 6 :(得分:0)

您可以使用google collab

  • 直接将文件上传到Google驱动器中
  • 打开Goog​​le合作实验室
  • 导入文件
  • 安装git(作为Jupyter笔记本电脑或Linux PC)

您已经完成