gpt4 book ai didi

windows - Git diff 在路径中带有下划线的文件上失败

转载 作者:可可西里 更新时间:2023-11-01 09:28:19 26 4
gpt4 key购买 nike

我运行的是 Windows 7,并且我有最新版本的 git (2.7.2.windows.1)。我以前使用 Windows PowerShell 作为 git 操作的终端,没有任何问题。最近,我决定切换到 Git Bash,但我遇到了一个主要问题。

我的项目有一个目录(其中有许多子目录),其名称只是一个下划线。每当我尝试对该目录中的文件运行 git diff 时,我都会收到以下错误:

$ git diff _/css/templates/jquery.tag-editor.css
致命:无效的对象名称“_C”。

据我所知,下划线是文件/目录名称中完全有效的字符,制表符完成在该目录中工作正常,所以我知道终端可以“看到”其中。此外,该项目的其他贡献者,他们都运行 OSX,没有这个问题。当我运行一个简单的 git diff 时,没有指定任何单个文件,它工作正常,并且很高兴地在下划线目录中包含任何更改文件的 diff。如果我 cd 进入下划线目录并从那里运行 git diff ,它也可以工作,这样我传递给它的路径不包括下划线。

这里到底发生了什么阻止我对这些文件运行 git diff?当我尝试这样做时,错误消息中的“C”从何而来?

更新

当我运行 git checkout -- _/css/templates/jquery.tag-editor.css 以放弃对该文件的更改时,这是我看到的错误:

错误:pathspec '_C:/Program Files/Git/css/templates/jquery.tag-editor.css' 与 git 已知的任何文件都不匹配。

C:\Program Files\Git 是我的 Git 安装目录。那么显然路径的一部分被解释为指的是 Git 安装目录?再一次,是什么导致了这种情况的发生?

最佳答案

您遇到的问题是基于Posix Path conversions of MinGW/Msys2 .

  • 在 git-bash 上尝试双斜杠:git diff _//css/templates/jquery.tag-editor.css 或使用反斜杠(需要在 git-bash 中转义) : git diff _\\css\\templates\\jquery.tag-editor.css 或前缀 MSYS_NO_PATHCONV=1: MSYS_NO_PATHCONV=1 git diff _/css/templates/jquery.tag-editor.css
  • 在 CMD 上,你应该使用反斜杠而不是斜杠:git diff _\css\templates\jquery.tag-editor.css 或者像 git-bash 一样使用双斜杠

为了防止转换。

关于windows - Git diff 在路径中带有下划线的文件上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35660576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com