![](/img/trans.png)
[英]How to convert mercurial repository to git repository without losing branches?
[英]How can I convert a Git repository with branches to a workable Mercurial repository?
我想將具有多個分支的Git存儲庫轉換為Mercurial存儲庫。 使用hg convert
只創建一個默認分支,然后為每個Git分支創建一個頭。
我已經閱讀了如何將git分支導入mercurial與hg convert? 並且我知道不可能知道哪個提交屬於Git中的哪個分支。 但是,與分支一樣多的存儲庫對我來說不是一個可行的解決方案。
由於所有分支都不同,我顯然不能將它們全部合並到一個單獨的頭部。
如何以這樣一種方式轉換或修改轉換后的存儲庫? 請注意,我不一定需要將所有現有提交分配給正確的分支,但我希望從此時開始的提交被分配到正確的分支,並且每個分支只有一個頭。
你必須知道一些關於Git的事情:
hg-git
而不是轉換擴展將產生更正確的(雙向)轉換 特別為你重復操作(優秀的共同點) VonC回答鏈接你的問題,並會給你一些圖片(Git來自SmartGit,Mercurial來自TortoiseHG)
畢竟提交后,
GitRepo>git log --oneline
79ea101 third evolution in branch 2
720ac25 second evolution in branch 2
48951c3 first evolution in branch 2
6cf26b0 first content, to be evolved in three different branches
在導入Mercurial之前,所有“分支”
從Mercurial的POV中,導入的結果非常不同:存儲庫有一個真正的分支 (名為分支default
)和3個匿名分支,標有Mercurial書簽 br1-br2-br3。
如果要在此存儲庫中使用Mercurial命名分支,則必須手動創建命名分支並重寫歷史記錄:
作為可選和最后一步,您可以刪除在步驟1中創建的空更改集( histedit
做得好)和所有無用的書簽
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.