我有一个名为“Myproject”的存储库,在其中我们有一个分支“MyProject-new changes”
我已将本地计算机中的“MyProject”存储库克隆为 C:/ MyProject的
同样克隆了“MyProject-new changes”as c:/ MyProject-新变化“
拉取和合并后,两个存储库都有最新的更改。
现在,我需要将“MyProject-new changes”(分支)更改的更改合并到本地的“MyProject”中。
一旦我合并,我不想提交这些更改。我将在分支更改正在工作时恢复更改。我只想整合新的变化并暂时查看结果。
请让我知道以下
答案 0 :(得分:0)
因此,您需要一个可以测试合并的测试站点。通常人们为实验创建单独的克隆。这为您提供了还原更改的简便方法 - 只需删除实验性克隆。因此,让我们从制作MyProject的另一个克隆开始,并在分支default
中的最新提交上进行更新。
假设修订版25是分支default
中的最新修订版。您可以使用命令hg up -r 25
更新它。
假设修订版37是MyProject-new changes
中的最新修订版。您可以使用命令MyProject-new changes
将default
中的最新更改合并到分支hg merge -r 37
中。之后,您将在工作目录中获得合并结果。
由于你在单独的克隆中工作,你可以毫无疑问地提交。使用hg ci -m 'merge with new changes'
提交并测试结果。完成测试后,您只需删除实验克隆。
答案 1 :(得分:0)
最简单的方法是对您的存储库进行完全克隆,合并并测试您的内容,并在完成后丢弃存储库。 @Kirill解释了如何做到这一点。
但为什么呢?也许你会遇到问题或小合并冲突,你将在克隆中修复。抛弃这项工作将是一件遗憾的事 - 你将来可能会需要它。当然,你可以简单地保留克隆,但我建议重新考虑你的前提:你为什么不想合并这两个分支?
您有一个主分支(default
)和一个功能分支new-changes
,您希望安全地看到它们如何协同工作。在没有克隆存储库的情况下,您可以通过以下两种方式执行此操作:
为了确保default
分支安全,只需将默认合并到新变更中:
hg update new-changes # switch to the branch
hg merge -r default
您现在可以测试新的更改并修复任何问题。这是一个非常常见的工作流程:对default
的更改会合并到长时间运行的分支中,以防止它们相距太远。当您最终准备统一两条开发线时,将new-changes
合并到默认行中,一切都会正常工作。
如果您想暂时保持两个分支纯,您可以创建 new 分支testing
并将现有分支合并到其中。您可以保留它并最终将其合并到default
,或者如果new-changes
原来是失败的实验则关闭它。 (细节:如果testing
植根于其中一个分支的头部,则该分支将“无需合并”。您只需要合并另一个分支。)
如果您不想冒破坏主要仓库的风险,您当然可以克隆它并在克隆上尝试上述方法之一。一旦你对它正常工作感到满意,就把所有东西都推回主仓库。