完成后
git commit -am '/logs whatever'
我最终收到落实消息C:/Program Files/Git/logs whatever
。这是怎么发生的?我无法通过搜索“ git commit message autocomplete”之类的东西来找到任何相关信息。
$ git --version
git version 2.20.1.windows.1
$ bash --version
GNU bash, version 4.4.23(1)-release (x86_64-pc-msys)
其他调查路径不必存在,只是附加到C:/Program Files/Git
,但如果存在,则情况可能会有所不同(注意/usr/
,两条路径都存在):
$ git commit -am '/bin/git.exe something'
[master 22f9915] C:/Program Files/Git/usr/bin/git.exe something
答案 0 :(得分:1)
显然,这是this。 Windows Git的维护者Johannes Schindelin描述了它以及可能的修复:
如果您指定以斜杠开头的命令行选项,则POSIX到Windows的路径转换将在转换例如“
colors = [attr for attr in dir(Colors) if not callable(getattr(Colors, attr)) and not attr.startswith("__")] for color in colors: print(color + 'foo') //prints this: //REDfoo //GREENfoo ...
”到“colors = [attr for attr in dir(Colors) if not callable(getattr(Colors, attr)) and not attr.startswith("__")] for color in colors: print(Colors.color + 'foo') //error: Colors has no attribute 'color' print(Colors[color] + 'foo') //error: Colors object is not subscriptable
”。当不需要时-例如“/usr/bin/bash.exe
”或“C:\Program Files\Git\usr\bin\bash.exe
”-您需要临时设置环境变量--upload-pack=/opt/git/bin/git-upload-pack
,如下所示:
-L/regex/
或者,您可以将第一个斜杠加倍,以避免POSIX到Windows的路径转换。
即使您的情况并非如此,但消息以斜杠开头的事实一定会触发此行为。