从 git 迁移到 mercurial 之后(不是我个人的偏好 :) 我遇到了一个问题:hg convert
将 git 分支转换为书签。有没有办法将书签转换为命名的 hg 分支?是否需要,为什么?
谢谢!
最佳答案
Git 分支和 hg 书签本质上是同一件事(对单个变更集的引用),这就是它们以这种方式转换的原因。书签的行为与 git 分支非常相似——它们在你提交时前进,等等(没有跟踪分支的概念,但你可以使用 remotebranches 扩展获得类似的结果)。许多人在 Mercurial 中根本不使用命名分支——他们使用书签和/或匿名分支。
Hg命名的分支非常不同——这个名字是历史不可磨灭的一部分。不可能(自动)将 git 分支转换为 hg 命名分支,因为 git 分支仅命名分支的尖端 - 您无法知道哪些其他变更集应该是分支的一部分。
如果你真的想从现在开始使用命名分支(我强烈鼓励它——我个人更喜欢在一个单独的命名分支中完成每项任务)我建议只在每个任务上启动一个具有相同名称的命名分支当前书签(您可以删除书签)。
您可以手动检查并将变更集移植或移植到新的命名分支中,但这样做会删除与 git 变更集的关联 - 如果您使用的是 hg-git 而不是 convert,则这一点很重要。虽然 graft 可能保持一些关联,因为它是使用 hg merge 工具实现的。
关于git - 将 hg 书签转换为命名分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11861401/