Git:Windows 上的 Git 存储库中的 .git\HEAD 内容中使用的路径分隔符是什么?

Git: What's the path separator used in the content of the .git\HEAD in Git repositories on Windows?

标题说明了一切,但是例如,如果 Git 存储库的 HEAD 在任何 well-used Git 实现上指向 ref/heads/master对于 Windows,以下哪项是文件 .git/HEAD 的内容...哎呀,.git\HEAD:

无论哪种方式,我都需要计算绝对路径<git project>\.git\refs\heads\master,但我没有Windows环境,我无法知道使用的是哪种形式!不胜感激。

背景:我正在修改一个 Haskell 库来实现一个宏,该宏在编译时将 Haskell 项目的 Git 修订散列嵌入到它们的源代码中(非常适合实现--version 选项!)。当我们编译调用该宏的程序时,会调用 git;然而甚至在此之前,当构建工具正在检查是否需要重新编译时,我们不能调用 git 并且所做的只是简单的文件更新检查!因此,每次编译时,我们都必须计算并保存HEAD所指向的参考文件的路径,以便下次检查参考文件是否更新。问题是我想制作库 cross-platform 但我不知道如何计算 Windows 上的参考文件的路径,因为我不知道原始形式。

HEAD 使用引用名称而不是路径分隔符。 Git 始终在引用名称中使用正斜杠,即使在 Windows 上也是如此。在任何平台上的参考名称中都不允许使用反斜杠。

由于 Windows 也允许使用正斜杠路径分隔符(除非您使用的是 UNC 路径),因此通常在任何地方都使用正斜杠是安全的,除非您知道自己有特殊需要。