我想将具有多个分支的Git存储库转换为Mercurial存储库。hg convert
仅使用一个默认分支创建,然后每个Git分支都有一个头。
我已经阅读了如何将git分支导入到具有汞的汞转换中?并且知道不可能知道哪个提交属于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相比,导入的结果有很大不同:存储库中有一个真实分支(名为branch default
)和3个匿名分支,并用Mercurial书签br1-br2-br3标记。
如果要在此存储库中使用Mercurial命名分支,则必须手动创建命名分支并重写历史记录:
作为可选的最后一步,您可以删除在步骤1中创建的空变更集(histedit
做得好)和所有无用的书签
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句