有一些方法可以通过 google drive sync windows 应用程序将我的本地 git 存储库同步到我的 google drive,但我想知道我是否可以完全绕过它的需要。
例如。
$ git remote add origin https://drive.google.com/<my_folder>/<my_repository>.git
$ git push github master
有一些方法可以通过 google drive sync windows 应用程序将我的本地 git 存储库同步到我的 google drive,但我想知道我是否可以完全绕过它的需要。
例如。
$ git remote add origin https://drive.google.com/<my_folder>/<my_repository>.git
$ git push github master
不,你不能。Google 驱动器上没有运行 git。
我还建议反对基于 Google 驱动器/Dropbox 的解决方案,而改用 git 托管解决方案。例如Bitbucket,它提供了一些免费的私有存储库。您可以在此处找到有关不同 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%23@github.com/LaloCo/handson-ml.git
#I find using a github personal access token easier
!git clone https://user:PAT@github.com/repo
如果您正在运行 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 等上一样正常运行。您只是不会从远程获得通常的细节。
您可以简单地将您认为合适的工作文件夹存档在 Google Drive 上,就像其他任何备份一样,为了保持一致性,您可以使用 crontab 或只是一个简单的脚本来自动存档,然后通过最适合的 Google Drive cli 工具上传你。