我在Ubuntu 10.10 amd64上使用git 1.7.1,我試圖提取我的倉庫HEAD的哈希以便在我編譯到我的項目中的自動版本信息中使用它。git描述失敗與「致命:沒有發現名稱,無法描述任何東西。」
在過去,這一直使用
git describe --tags
不過工作,Git是現在拋出
fatal: No names found, cannot describe anything.
我。有人知道這意味着什麼嗎?
谷歌只顯示幾個點擊,沒有解決方案。
我在Ubuntu 10.10 amd64上使用git 1.7.1,我試圖提取我的倉庫HEAD的哈希以便在我編譯到我的項目中的自動版本信息中使用它。git描述失敗與「致命:沒有發現名稱,無法描述任何東西。」
在過去,這一直使用
git describe --tags
不過工作,Git是現在拋出
fatal: No names found, cannot describe anything.
我。有人知道這意味着什麼嗎?
谷歌只顯示幾個點擊,沒有解決方案。
如果您想要id爲HEAD
那麼您不需要describe
,那麼您應該只使用rev-parse
。
git rev-parse HEAD
如果你想要一個縮寫哈希,你可以使用--short
。
git rev-parse --short HEAD
如果你想要一個「描述」回落到一個簡短的哈希如果不能找到合適的標籤,你可以使用--always
。
git describe --always
這聽起來像你希望git-describe
包括因爲該標籤最近的標記和提交的數量。但是,fatal: No names found
消息意味着您的在您的存儲庫中沒有任何標籤。您需要在提交歷史記錄中至少有一個標籤,以便git describe
告訴您最新的標籤。
只是猜測,但也許你在別處標記了一個提交,但從來沒有推動標籤上游(也許你推上提交,後來標記,並沒有重新排列?)。現在你的上游新克隆給你這個錯誤(因爲它沒有任何標籤)。如果是這種情況,您可以從包含所需標記的存儲庫中嘗試git push --tags
(其中git describe
正在按照您的預期行事)。然後在沒有標籤的存儲庫上執行git pull
。
此命令幫助我:混帳取-t
我已經在CI工具正在執行庫的淺克隆一個CI構建環境有這個問題。這是令人沮喪的,因爲在我的開發環境,命令
git describe --tags
會給我像輸出
2.2.12-7-g8ec9d6c9
而構建環境中我會得到錯誤的「發現致命的沒有名字」。如果我嘗試使用--always標籤
git describe --tags --always
話,我會簡單地得到最新的散列提交,但不是最近的標籤之前提交
8ec9d6c9
執行在一個git pull
構建環境將無濟於事,因爲一旦repo被克隆得淺,未來的pulls將不會更新標籤。
的解決方案是確保在構建環境回購的初始克隆不是淺克隆(即git clone
命令不與--depth
,--shallow-since
或--shallow-exclude
參數使用)。
「我試圖提取我的倉庫頭」不解析。 – nes1983 2011-02-06 22:16:30
@nes:OP可能意味着哈希。 – Cascabel 2011-02-06 22:17:28
你實際上只想要散列,還是說git描述的信息對你有用?最近的標籤和中間提交的數量比SHA1更具人類可讀性。 @nes:你可能想要取消刪除你的答案,因爲它可能正是OP所需要的 - 很難說。 – Cascabel 2011-02-06 22:27:56