代码之家  ›  专栏  ›  技术社区  ›  Roaders

为什么git rev parse--show toplevel返回不同于实际路径的大小写

git
  •  0
  • Roaders  · 技术社区  · 7 年前

    我正在使用一个NPM包 git rev-parse --show-toplevel 获取我的Git回购的顶级路径。

    我的实际路径(在Windows上)是

    C:\grde\username\so-on

    但是Git返回

    C:\GRDE\username\so-on

    为什么它会像那样将第一个文件夹大写?

    这将破坏此包,因为它使用返回值存储引用。但这不起作用,因为尝试查找引用时正在比较 C:\grde 具有 C:\GRDE

    更新:

    结果 dir 在里面 C:\ 实际显示名称的大写版本。但在资源管理器中,它显示的是小写名称。真烦人。node和git似乎有不同的解析文件路径的方法。

    1 回复  |  直到 7 年前
        1
  •  1
  •   bk2204    7 年前

    当git解析路径时,它将该路径规范化。在UNIX系统上,这意味着它可以解析所有符号链接,在不区分大小写的系统上,它也可以规范化大小写。这一点很重要,这样Git就可以轻松地确定文件是否在存储库中,等等。

    在这种情况下,您的目录在文件系统中实际上是大写的,但您试图使用小写版本访问它。您可以用如下命令重命名目录 this Super User answer 如果你想要它是小写的。不幸的是,这是不区分大小写的文件系统的一个缺陷。