0

如果我想将更改从本地分支拉到我的主流分支,并且不希望主分支中本地分支的临时变更集历史记录。我们怎么做?

4

2 回答 2

0

由于推送时不可能省略变更集,因此您可以尝试此解决方案,完全不清楚,但您可以这样做。想象一下你的本地 hg 日志是这样的:

  • 5:顶部(您希望在主分支中拥有此变更集)
  • 4:(本地变更集)
  • 3:(本地变更集)
  • 2:(本地变更集)
  • 1:更改集已经在主分支中的内容,应该是从本地新推送的更改集的父级

如果我有这个问题,我会更新到 1,然后从 5 恢复所有更改(所以我将拥有与 5 相同的工作目录)然后临时提交(6),这个临时提交(与更改集 5 相同)我会推送进入主要。在您的本地,您可以合并 5 和 6 并继续,但总会有从本地到 main 的传出变更集。命令如下所示:

  1. 汞上升 1
  2. hg revert -r 5 -a (现在您的工作目录与 5 相同)
  3. hg ci -m "将在主分支中显示的提交名称"
  4. hg push -r 6 main_branch_path

但是正确的解决方案是,当我们以这种方式使用它时,将所有开发变更集也保留在 main 中。高温高压

于 2012-10-16T07:07:38.590 回答
0
  1. 您无法在推送到服务器时重写变更集历史记录
  2. 您可以在推送之前在本地存储库中重写本地历史记录
  3. 您可以执行部分​​推送并仅发送特定的分支hg push -b ...,而不是整个回购

1-3个手段的巩固

  • 你必须有新的、单独的可推送分支
  • 您将合并到此分支并折叠它的历史记录(MQ 补丁,添加扩展名:histedit|collapse)
  • 只推送这个分支
于 2012-10-15T16:27:46.200 回答