2013-12-18 69 views
4

倉庫時,我混融三次教的git回購使用讀樹該怎麼辦標籤碰撞。有標籤名稱衝突。有什麼方法可以從遠程「獲取」並在發生衝突時映射標籤名稱?合併Git中

回答

3

是,排序的(所以也許「不」是更準確的,但你可以得到你想要的東西,與工作)。也就是說,有沒有辦法導航地圖標籤有條件,但它是很容易導航地圖標籤總是

當您運行git fetch remote(不含--tags)時,git fetch使用remote.remote.fetch下的配置條目來控制提取哪個引用名稱。當您運行git fetch remote --tags它的行爲,如果你給了它refs/tags/*:refs/tags/*在命令行上,或者對等地,行爲如同在配置中的所有條目暫時與一個單一的Refspec更換。

看看分支機構的實際參數,你會發現,例如,remote.origin.fetch被設置爲+refs/heads/*:refs/remotes/origin/*。 的+原因被迫更新(即,更新即使結果不是快進),其餘副本遙控器的refs/heads/master到本地refs/remotes/origin/master(如果需要創建它)。

標籤住在refs/tags/名稱空間(vs分支,在refs/heads/和遠程分支在refs/remotes/)。沒有「遠程標籤」這樣的東西,但是你可以把它組裝起來,過去沒有「筆記」這樣的東西,現在有一個名字空間。所以:

git config --add remote.origin.fetch 'refs/tags/*:refs/rtags/origin/*' 

會添加一行到配置爲remote.origin.fetch,這將使git fetch origin帶來了他們的標籤,但它們存儲在這個新的「遠程標籤」的名字空間。

一旦獲取完成(和您已經爲其它遠程運行其他取),你可以做你自己的映射,無論在refs/rtags/*捲起。


假設你沒有設置如鏡。