git如何解释冒号和路径?

时间:2018-12-07 18:50:15

标签: git

我想弄一个语法,用它的提交消息来引用一个提交,然后出现这个错误:

$ git show :/A
fatal: ambiguous argument ':/A': both revision and filename
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

该错误消息非常清楚如何解决,但是我还没有找到任何文档来解释git如何解释冒号和路径。仅在后接分支名称时。
能否请您给我一些参考,以了解更多有关此的信息?

1 个答案:

答案 0 :(得分:1)

实际上,这比您预期的要复杂一些,因为:/A可能是件事。

关于Git的文档,有很多不同的地方,但是有两个主要的地方可以查看:

:/A仅是一个文件名,仅表示名为:/A的文件。

作为 pathspec :/A使用“魔术签名”字符/,不使用终止符:,并使用名称A,因此它引用的是存储库或工作树的根目录中名为A的文件,而不是 current :/A文件>目录。

作为修订说明符:/A搜索提交消息,并且A成为正则表达式(尽管在这种情况下,这是一个与字母{{ 1}}):

  

...此名称返回可从任何引用(包括HEAD)访问的最年轻的匹配提交。

使用A,您将强制Git将其视为 pathspec ,您可能希望在其中添加--,以防止其解释。