有一些方法可以通过谷歌驱动器同步 Windows 应用程序将我的本地 git 存储库同步到我的谷歌驱动器,但我想知道我是否可以完全绕过它的需要。
例如。
$ git remote add origin https://drive.google.com/<my_folder>/<my_repository>.git
$ git push github master
不,你不能。 Google Drive 上没有运行 git。
我还建议不要使用基于 Google Drive/Dropbox 的解决方案,而选择 git 托管解决方案。例如Bitbucket,它提供了一些免费的私人存储库。您可以在here找到一些有关不同 git 托管站点的比较信息。
正如人们所指出的(OP 已经知道的那样),您可以将裸存储库放入本地 Google Drive/Dropbox 文件夹中并使用它,但是,有一些警告。云服务有自己的合并冲突系统,但这并不真正适用于 git。考虑一下场景:
您使用设备 A 离线工作,将一些提交推送到 Google Drive 文件夹中的裸存储库,但由于您处于离线状态,这些更改不会同步到云端。
然后您就忘记它,在线使用设备 B,将提交推送到 Google Drive 文件夹,这些更改就会同步。
设备 A 上线 - 您现在在 Google 云端硬盘中存在冲突。
这当然是可以恢复的,但是不方便。因此,我建议使用专门为 git 托管设计的解决方案。
这是一篇关于该主题的非常好的文章(此处为存档版本,此处转载了相关部分):
假设您有一个名为
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
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
您可以使用itDuzzit,它们提供 Google Drive 和 GitHub 之间的直接云到云同步。他们有相当有限的“免费套餐”和一些付费套餐。只要您的代码是开源的和/或您不介意第三方处理它,这可能是一个可行的解决方案。
# 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 等上一样。您只是无法从远程端获得通常的好处。从我看到的答案来看:共享分区不是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 远程。
NAVIKO 团队的“如何将 Amazon S3 挂载为云文件共享驱动器的指南”。非常有用的信息,即使您使用下面的第二个参考也是如此。