50

有一些方法可以通过 google drive sync windows 应用程序将我的本地 git 存储库同步到我的 google drive,但我想知道我是否可以完全绕过它的需要。

例如。

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

7 回答 7

48

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

我还建议反对基于 Google 驱动器/Dropbox 的解决方案,而改用 git 托管解决方案。例如Bitbucket,它提供了一些免费的私有存储库。您可以在此处找到有关不同 git 托管站点的一些比较信息。

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

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

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

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

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

于 2013-04-11T11:36:13.443 回答
24

这是一篇关于该主题的非常好的文章(此处为存档版本,相关部分在此处转载):

假设您有一个项目,其名称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 Drive 所在的位置并初始化一个裸存储库:

$ 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 Drive 克隆您的 Git 存储库:

$ cd /var/www/html/johndoe2
$ git clone file:///Users/myusername/Google\ Drive/johndoe
于 2014-01-20T10:46:47.770 回答
6

Eduardo Rosas 有一篇关于如何使用 colab 执行此操作的文章(仅需要浏览器)。本质上,您使用以下方式访问您的谷歌驱动器:

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
于 2019-10-13T14:08:39.000 回答
2

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

于 2013-12-17T00:50:03.237 回答
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 等上一样正常运行。您只是不会从远程获得通常的细节。

于 2014-12-04T00:30:02.210 回答
0

您可以为此目的使用google collab

  • 将您的文件直接上传到您的谷歌驱动器
  • 打开谷歌协作
  • 导入文件
  • 安装 git(作为 Jupyter notebook 或 Linux PC)

你完成了

于 2020-10-16T08:29:36.443 回答
0

您可以简单地将您认为合适的工作文件夹存档在 Google Drive 上,就像其他任何备份一样,为了保持一致性,您可以使用 crontab 或只是一个简单的脚本来自动存档,然后通过最适合的 Google Drive cli 工具上传你。

于 2017-12-02T22:05:22.810 回答