git - 将 hg 书签转换为命名分支

标签 git mercurial branch

从 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/

相关文章:

Xcode 机器人 : git submodules not initialized

git - 在 git repo 中控制大文件使用的最佳策略是什么?

eclipse - Mercurial Eclipse 插件中的回滚、取消和剥离有什么区别?

version-control - Mercurial和Notepad++集成

git - 将 master 分支中的当前工作切换到新分支(在 git 中)

linux - 如何使用 key 通过 ssh 将私有(private)服务器上的 git repo 克隆到本地计算机?

Git:撤消本地更改;混帐添加。 + 混帐室?

git - 将带有子存储库的 mercurial repo 迁移到 git 并保留历史记录的最佳方法?

Git rebase 分支与所有父分支(或依赖子分支)

git - 我所在的文件夹在 git 中有什么意义吗?