如何在虚拟机中的主机 - 圈文件系统上使用git worktree



我正在Windows的本地存储库中打开一个新的工作室,并且无法在我的Linux虚拟机中编译它,因为" .git"包含以"以"开头的完整路径c:/git"虚拟机无法识别。

我有一个git存储库,我经常需要在Windows和Linux上进行交叉编译。我最初将存储库克隆在Windows系统中,并将我的" C:"驱动器作为虚拟Ubuntu机器中的共享文件系统插入。这通常可以很好地工作。

试图在git中打开新的工作丽时,链接的存储库没有其自己的" .git"文件夹,而是指向原始存储库的" .git"文件夹的链接,并且它可以保存为绝对路径,以以下格式:

gitdir: C:/Git/...

尝试运行时:

git rev-parse

我收到以下消息:

fatal: not a git repository: /mnt/hgfs/WindowsDriveC/Git/WorktreeDir/C:/Git/OriginalGitDir/.git/worktrees/WorktreeDir

由于此限制,我的几个脚本都失败了。

是否有任何方法可以"欺骗" Linux识别完整路径并正确识别原始Git Repo?

通常,这样做这种事情是因为它会导致腐败而灰心,并且您看到Windows路径在Linux路径上的发挥不佳。

但是,话虽如此,有几个选择。一种是在Cygwin或Windows子系统下为Linux设置Worktree并共享。这仍然会导致Linux VM上不存在的路径,但是可以创建一个从/cygdrive/c/mnt/c/mnt/hgfs/WindowsDriveC的符号链接,然后其余的内容将起作用。

另一个选择只是将Windows子系统用于Linux,这意味着您可以进行编译并产生Windows二进制文件而不离开Windows。您会生产Linux二进制文件,但您不必担心与VM共享。不过,需要在WSL下创建工作室。

最终选项是在工作室中编辑.git文件,以使用主存储库的相对路径。这是不受支持的,可能会破裂,但是它可能会满足您的需求。确保将前向斜线用于此目的。

相关内容

最新更新