[英]How does git interpret a colon followed by a path?
我在玩弄一種通過提交消息引用提交的語法,然后出現此錯誤:
$ git show :/A
fatal: ambiguous argument ':/A': both revision and filename
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
錯誤消息非常清楚如何解決,但是我還沒有找到任何文檔來解釋git如何解釋冒號和路徑。 僅在后接分支名稱時。
您能否給我一些參考以了解更多信息?
實際上,這比您預期的要復雜一些,因為:/A
可能是三件事。
Git文檔中有許多不同的地方對此進行討論,但是有兩個主要的地方需要考慮:
:
當某些東西是修訂說明符時,-prefixes起作用。 :
-當某物為pathspec時, -prefixes起作用 。 當只是文件名時, :/A
僅表示名為:/A
的文件。
作為路徑規范 , :/A
使用“魔術簽名”字符/
,不以:
終止,並使用名稱A
,因此它引用(存儲庫或工作樹的) 根目錄中名為A
的文件,而不是當前目錄中的文件:/A
作為修訂說明符 , :/A
搜索提交消息,並且A
成為正則表達式(盡管在這種情況下,這是一個與字母A
匹配的瑣碎正則表達式):
...此名稱返回可從任何引用(包括HEAD)訪問的最年輕的匹配提交。
使用--
您將強制Git將其視為pathspec ,您可能需要在其中添加:(literal)
以防止其解釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.