我可以直接从我的谷歌云端硬盘在线推送/拉取吗?

问题描述 投票:0回答:7

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

例如。

$ git remote add origin https://drive.google.com/<my_folder>/<my_repository>.git
$ git push github master
git google-drive-api
7个回答
53
投票

不,你不能。 Google Drive 上没有运行 git。

我还建议不要使用基于 Google Drive/Dropbox 的解决方案,而选择 git 托管解决方案。例如Bitbucket,它提供了一些免费的私人存储库。您可以在here找到一些有关不同 git 托管站点的比较信息。

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

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

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

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

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


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

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%[email protected]/LaloCo/handson-ml.git
#I find using a github personal access token easier
!git clone https://user:[email protected]/repo

3
投票

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


1
投票

# 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 等上一样。您只是无法从远程端获得通常的好处。
    


0
投票
google collab

来达到此目的。

将文件直接上传到您的谷歌驱动器
  • 打开谷歌协作
  • 导入文件
  • 安装git(作为Jupyter笔记本或Linux PC)
  • 你就完成了


0
投票

从我看到的答案来看:共享分区不是GIT目前的工作方式。我能够通过 IDrive E2 将内容放入已安装的 S3 存储桶中,它们有 10GB 的免费套餐。对于像 Freelance.com 项目这样的微型协作来说,这可能没问题。

简而言之,对于 Git 远程来说,S3FS 是比 Google Drive 更好的主力。系统需要安装 S3FS。 Google Drive 的优点是可以在 crostini Linux [Chrome OS] 上使用,无需安装

sudo

真的不确定如果两个或更多人同时推送,Git 将如何解决推送同步冲突。从我在研究时看到的答案来看,使用 git 的共享分区是一个禁忌。看起来 Google Drive 在托管 Git 存储库的文件系统方面绝对会失败。

主要需要知道:如果时间更长,如果没有网络问题,托管文件系统 git repo 是否会损坏?

我的尝试:

设置 S3 文件系统挂载,并在其中创建 Git 远程。
  1. 将我的更改推送到 s3-bucket mount
  2. 在另一台主机上安装相同的 S3 存储桶
  3. 克隆存储库,进行更改,提交,推送
  4. 在原始主机上发现更改并撤回。
  5. 在 S3 存储桶中设置挂载的说明可以在以下位置找到:

NAVIKO 团队的“如何将 Amazon S3 挂载为云文件共享驱动器的指南”。非常有用的信息,即使您使用下面的第二个参考也是如此。
  1. 具体 IDrive 说明:“如何将 S3FS 与 IDrive 一起使用”
  2. 谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.