我想弄一个语法,用它的提交消息来引用一个提交,然后出现这个错误:
$ git show :/A
fatal: ambiguous argument ':/A': both revision and filename
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
该错误消息非常清楚如何解决,但是我还没有找到任何文档来解释git如何解释冒号和路径。仅在后接分支名称时。
能否请您给我一些参考,以了解更多有关此的信息?
答案 0 :(得分:1)
实际上,这比您预期的要复杂一些,因为:/A
可能是三件事。
关于Git的文档,有很多不同的地方,但是有两个主要的地方可以查看:
:
前缀如何工作。:
前缀的工作方式。 :/A
仅是一个文件名,仅表示名为:/A
的文件。
作为 pathspec ,:/A
使用“魔术签名”字符/
,不使用终止符:
,并使用名称A
,因此它引用的是存储库或工作树的根目录中名为A
的文件,而不是 current :/A文件>目录。
作为修订说明符,:/A
搜索提交消息,并且A
成为正则表达式(尽管在这种情况下,这是一个与字母{{ 1}}):
...此名称返回可从任何引用(包括HEAD)访问的最年轻的匹配提交。
使用A
,您将强制Git将其视为 pathspec ,您可能希望在其中添加--
,以防止其解释。