如果一個分支有兩個頭怎麼辦?幾周前,我出於某種原因遇到了這種情況,當時我並沒有合併它們,只是繼續在一個頭上開發。現在我想擺脫另一個頭。我該怎麼辦?我應該在這麼多變更集之後合併它們嗎?Mercurial:如何處理一個有兩個頭的分支
回答
所以,你有這樣的:
o--o--o--A--B <- older unnecessary head
\
1--2--3--4--5--6 <- newer ‘good’ head
...你不需要A
和B
,絕對,100%肯定。 如果您不確定,並且A
和B
中可能有可挽救的東西,則更好地合併這些頭以合併這些更改。正如Aaron所說,Mercurial擅長它。
現在你有兩個選擇:
- 擺脫舊的頭,或
- 做的,無視頭
B
兩個頭一個虛擬合併。
如果變更A
和B
存在於其他存儲庫,你不用管,例如如果其他人將A
和B
拉入他們的存儲庫,或者您將A
和B
推送到公共存儲庫(比如Bitbucket),那麼您已經將A
和B
放入野外,並且無法擺脫它們。你應該做一個dummy merge:
$ hg up 6
$ hg --config ui.merge=internal:local merge
合併時,它會忽略從A
和B
任何變化。
如果,另一方面,A
和B
都是私人,您可以strip他們:
$ hg strip A
(REV。A
和剝奪後代;使MQ擴展,使strip
可用)
或者,使您的存儲庫的新克隆無需更改集A
和B
:
$ hg clone myrepo myrepo2-clone -r 6
(修訂版只和6
祖先加入到克隆。)
虛擬合併解決了我的問題,謝謝! – nrodic
如果您提交了一些更改(將更改集添加到現有更改集),則會創建一個頭。如果相同的變更集發生多次,那麼會創建幾個頭。這沒什麼特別或不好的。
通常的解決方案是合併它們。 Mercurial非常擅長合併。結果仍然有可能在沒有任何手動工作的情況下編譯和運行。
只需運行hg merge
,然後hg status
和hg diff
查看兩者之間的變化。如果你喜歡這個結果,就提交它。如果你不喜歡它,update
要麼頭清理你的工作區。
擺脫一個頭,docs explain how to do that。
使用MQ,你也可以把第二個頭轉到一個獨立的分支(所以你可以保留它,但它不會打擾你)。看到這個答案:How can I create a branch for a non-tip revision in Mercurial?
- 1. mercurial複製一個現有的分支
- 2. 如何重組一個Mercurial庫有兩個主要的平行分支
- 3. Mercurial,拉一個分支
- 4. 如何合併Mercurial上的兩個頭?
- 5. Mercurial - 將兩個分支合併爲第三個新分支
- 6. Mercurial分支修訂歷史,兩個遠程頭推時
- 7. 在分支分支提交後,在Mercurial中留有兩個默認分支
- 8. Mercurial:使一個分支與另一個分支相同
- 9. 如何在Mercurial中創建兩個獨立的分支?
- 10. .hgignore每個分支在mercurial?
- 11. Sourcetree,Mercurial和幾個分支
- 12. mercurial將一個分支設置爲新的默認分支
- 13. 我在Mercurial回購中有兩個分支和兩個頭:正常還是不好?
- 14. 一個結構代碼應該如何在有兩個分支時分支到
- 15. 如何將文件從分支添加到Mercurial中的另一個分支?
- 16. 如何列出某個Mercurial分支中的所有標籤?
- 17. 如何在Mercurial中創建一個新的「穩定」分支
- 18. 如何獲得一個分支中的mercurial commit序號
- 19. 如何將兩個分支分支並排合併成一個分支?
- 20. Mercurial如何處理拆分文件?
- 21. 如何從默認分支追趕命名的mercurial分支而不將兩者合併爲一個?
- 22. 在git中,給定兩個分支,我如何找到一個分支合併到另一個分支的點?
- 23. 如何合併Bitbucket上的兩個分支頭?
- 24. Mercurial:列出所有未分支分支
- 25. 在Git和Mercurial的兩個分支之間做差異
- 26. Git的方法:把一個新的分支在現有的兩個分支
- 27. 如何保持一個測試分支同步,可在主機有一個特點,分支合併到兩個
- 28. 顯示一個分支的頭像?
- 29. 拆分分支在兩個分支/合併分支有選擇
- 30. 如何處理Maven中兩個幾乎完全相同的發佈分支
的可能重複[有沒有刪除多個頭的另一種方式?(http://stackoverflow.com/questions/6867054/is-there - 另一種方式 - 刪除多頭) –