我正在使用一个npm软件包,该软件包使用git rev-parse --show-toplevel
来获取我的git repo的顶级路径。
我的实际路径(在Windows上)是
C:\grde\username\so-on
但是git返回
C:\GRDE\username\so-on
为什么这样大写第一个文件夹?
这破坏了此程序包,因为它使用返回的值来存储引用。尽管这样做不起作用,因为当尝试查找引用时正在将C:\grde
与C:\GRDE
更新:
dir
中C:\
的结果实际上显示名称的大写版本。但是在资源管理器中,它显示小写名称。真烦人看来node和git有不同的解析文件路径的方法。
答案 0 :(得分:1)
当Git解析路径时,它将规范化路径。在Unix系统上,这意味着它可以解决所有符号链接,而在不区分大小写的系统上,它也可以规范大小写。这很重要,因此Git可以轻松确定文件是否在存储库中。
在这种情况下,您的目录在文件系统上实际上是大写的,但是您尝试使用小写版本进行访问。如果希望目录小写,则可以使用诸如this Super User answer之类的名称重命名目录。不幸的是,这是不区分大小写的文件系统的陷阱之一。