2015-09-29 58 views
4

當我已經擁有類似的外觀時,有沒有什麼方法可以創建名稱中帶正斜槓的git標籤?如何使用正斜槓創建名稱標籤

假設我有 「1.16.0」 的標籤,我想創建 「1.16.0/1.0.0」 標籤:

$ git tag "1.16.0/1.0.0" 
error: 'refs/tags/1.16.0' exists; cannot create 'refs/tags/1.16.0/1.0.0' 
fatal: refs/tags/1.16.0/1.0.0: cannot lock the ref 

回答

4

這是不可能的。請參閱標記的名稱(任何引用,實際上;分支也是如此)作爲文件系統對象的名稱,在您的存儲庫的$GIT_DIR/refs文件夾中創建。該對象存儲標籤附加到的散列提交。

隨着標籤foo,很容易 - 文件foo創建於$GIT_DIR/refs,沒有什麼特別的想知道。

具有觸殺foo/bar,然而,這是一個比較複雜一點:現在文件夾foo被創建,其只是一個單一的文件 - bar(再次,與哈希提交)。引用the docs

[參考名稱]可以包括斜線/分層(目錄)的分組

的問題是,這是不可能有兩個對象 - 文件和文件夾 - 具有相同的名稱。所以如果你已經有1.16.0標籤,你將無法使用1.16.0/anything。一個明顯的解決方案是將該初始標籤轉換成類似1.16.0/0.0.1的東西,然後繼續您的原意。或者你可以用-_替換斜線。