OneDrive 和 Git - 不同的文件夹结构

OneDrive and Git - Different folder structures

我使用 OneDrive 在我使用的所有机器(家用台式机、笔记本电脑和工作电脑)之间同步我的个人项目。在我的家用 PC 中,我在以下路径中有一个 git 存储库:

I:\OneDrive\Documents\Projects\MyProject

在我的工作计算机中,OneDrive 基本位置映射到不同的路径,因此该文件夹同步到:

C:\Users\MyUser\OneDrive\Documents\Projects\MyProject

我使用 VSCode 和 git 集成,在我的家用电脑上一切正常,但是当我在我的工作电脑上用 VSCode 打开 repo 时,它无法识别存储库。如果我打开 .git 目录中的配置文件,我可以看到 worktree 指向我家机器的绝对路径:

worktree = I:/OneDrive/Documents/Projects/MyProject

我认为 git 正试图在我的工作计算机中找到此路径,该路径不存在(因为 OneDrive 映射到不同的位置),因此它无法识别存储库VSCode.

有办法解决这个问题吗?在处理回购位置时,我可以让 git 使用相对路径吗?我尝试将工作树更改为 ../ 但这似乎不起作用。

谢谢!

通常您不需要在 git 存储库中设置工作树配置。 您应该能够删除这个特定的配置参数。 在这种情况下,工作目录是您的 .git 文件夹所在的位置(在您的情况下,它从工作计算机更改为家庭计算机)。此 .git 文件夹应位于项目的根目录中,例如:

I:\OneDrive\Documents\Projects\MyProject\.git

任何具有 git 集成的工具都应该为此项目选择正确的工作目录。

尽管如此,我强烈建议使用外部 git 存储库,例如https://github.com。 OneDrive 不是存储项目的理想位置,如果只有你在这个项目中工作,它可能没问题,但如果有人加入这个项目,它就会失败。同步 git 对象对于 OneDrive 来说可能也是一个痛苦,它将在较大的项目上扩展得非常糟糕,并且可能会在同步失败时破坏你的 git 存储库。

git 的优点还在于您不需要集中式 git 存储库(这是您现在使用 OneDrive 所做的基本操作),但实际上 git 是分布式版本控制系统。 这里有一些进一步的阅读:https://www.git-scm.com/about/distributed

如果您坚持使用 OneDrive,则应仅将 OneDrive 位置用作上游位置。这意味着您从 OneDrive 拉取并推送到它。 演示了如何执行此操作。