【问题标题】:How to use git with on google drive?如何在谷歌驱动器上使用 git?
【发布时间】:2023-02-01 00:18:46
【问题描述】:

我花了 15 个多小时对 git 进行故障排除,但没有成功。

在过去的 6 个月里,我一直在使用 google drive (G:/) 作为我的本地 git 仓库。我的 github Personal Access Token 已过期,更新后(不幸的是,进行了大量故障排除,重新安装 git、rstudio 和 R),git 不再适用于 google drive。我想我在对我的 github PAT 进行故障排除时在我的计算机上用 git 搞砸了一些东西......

我推断我的问题与 github、R 或 Rstudio 无关,而是与 git 相关。虽然我可以使用 git init 在 C:/ 上的任何位置初始化新的回购协议,但我无法在 G:/ 中的任何地方初始化空白回购协议(我也无法从 github 或 C:/ 克隆)。我在 G:/My 驱动器、git init "G:/My Drive"git init G:/My\ Drive 中尝试过 git init。所有这些都返回错误:fatal: bad config line 3 in file G:/My Drive/np/.git/config(pic)。当我重新运行 git init 并且如果我删除 .git/config 并运行 git init 时,我得到同样的错误。

当我在 G:/ 中使用 git init 时,git./ 中的所有文件(例如, .git/config.git/description.git/HEAD)被我计算机上其他文件(通常来自 csv 文件)的随机内容损坏。我还暂停了谷歌同步以消除谷歌备份的罪魁祸首。

git config --global -l 返回以下内容:

$ git config --global -l
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=D:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
core.fsmonitor=true
pull.rebase=false
credential.helper=manager-core
credential.https://dev.azure.com.usehttppath=true
init.defaultbranch=master

我从几个 stackoverflow 问题中读到,你不应该使用 google 驱动器(或任何云存储)进行 git,因为它们单独处理每个文件,而不是将 repo 作为一个整体(就像 git 那样)。但是,我的整个工作流程和文件管理都是通过驱动器进行的,而且我的大部分工作都是一个人完成的,所以我更愿意将所有工作集中在驱动器中。

【问题讨论】:

标签: git github google-drive-api


【解决方案1】:

您不应将存储库存储在 Google Drive 或其他云同步服务上。 Git 将文件以特定的顺序和指定的同步写入存储库,以确保存储库处于一致的状态,而云同步服务不会以相同的方式同步数据。

您可能更喜欢使用 Google Drive,但如果您在其中存储 Git 存储库,它几乎肯定最终会损坏您的存储库。如果您不希望有损坏的数据,那么您应该避免将 Google 云端硬盘用于您的存储库。 Git FAQ 会在某个时候更新以明确提及这一点,我强烈建议您留意。

如有必要,使用云同步服务存储捆绑文件(使用git bundle创建)或存储库的存档(最好是 tar,而不是 zip)是安全的。请注意,如果您在存档中包含工作树,则不应与其他人共享存储库,因为在多个用户之间共享工作树是不安全的。

【讨论】:

  • 谢谢,这确实澄清了我在 Google 云端硬盘上的回购问题 bus error 问题。从现在开始将坚持本地回购,谢谢!
【解决方案2】:

共享 Google Drive 托管的 Git 项目

第1步: share Git 存储库文件夹,其中包含来自 Google Drive 的项目合作者。

然后每个合作者应该: 第2步: 下载并安装 Google Drive 桌面版,并确保 Git 安装在他们的系统上。

第 3 步: Sync 共享 Git 项目文件夹到他们本地的 Google Drive。

第四步:在新文件夹中打开命令行界面,执行Git clone命令克隆共享项目。

混帐克隆 PATH_TO_GOOGLE_DRIVE_SYNC_FOLDER/ANY_SUBFOLDER_PATH/PROJECT_NAME.git

第 5 步:为共享项目配置 Git 远程。

git 远程添加 REMOTE_NAME PATH_TO_GOOGLE_DRIVE_SYNC_FOLDER/ANY_SUBFOLDER_PATH/PROJECT_NAME.git

第 6 步:将项目更改推/拉到远程...更改将与 Google Drive 同步。 例子:

git push gdrive master

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-14
    • 2021-07-16
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 2018-11-10
    相关资源
    最近更新 更多