我正在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
文件,以使用主存储库的相对路径。这是不受支持的,可能会破裂,但是它可能会满足您的需求。确保将前向斜线用于此目的。