簡體   English   中英

git如何解釋冒號和路徑?

[英]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文檔中有許多不同的地方對此進行討論,但是有兩個主要的地方需要考慮:

  • gitrevisions文檔描述了如何:當某些東西是修訂說明符時,-prefixes起作用。
  • gitglossary定義了如何: -當某物為pathspec時, -prefixes起作用

當只是文件名時, :/A僅表示名為:/A的文件。

作為路徑規范:/A使用“魔術簽名”字符/ ,不以:終止,並使用名稱A ,因此它引用(存儲庫或工作樹的) 根目錄中名為A的文件,而不是當前目錄中的文件:/A

作為修訂說明符:/A搜索提交消息,並且A成為正則表達式(盡管在這種情況下,這是一個與字母A匹配的瑣碎正則表達式):

...此名稱返回可從任何引用(包括HEAD)訪問的最年輕的匹配提交。

使用--您將強制Git將其視為pathspec ,您可能需要在其中添加:(literal)以防止其解釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM