Mercurial撤消提交

时间:2015-09-18 13:01:49

标签: mercurial tortoisehg

是否可以更改最后一次提交的分支?

server  local  desired
           |       |
          13      13
           |       |
          12      12
           |       |
          11      11
           |     /
  10      10    10
  |        |

说明:

我在SiteV1上的Mercurial的default分支工作。当前版本是10(本地和服务器)。

我开始使用brad新版本的SiteV2 ...不幸的是我在同一个default分支上提交本地此SiteV2:rev.11,{{1} },rev.12 ...所以当地我在rev.13(13经过一些修改)......

在服务器上仍然是rev.13+

我想在服务器上提交从rev.10到新分支10的所有修订...以便我的提交rev.11 .... rev 14打开这个新分支。,它在服务器上提交所有内容。有可能吗?

1 个答案:

答案 0 :(得分:3)

由于您尚未传播任何更改,因此很简单。您需要使用在配置文件中可能需要启用的rebase扩展名(默认情况下它不是活动的,但随附mercurial):

hg up -r10
hg branch NEWBRANCH
hg commit -m "New branch NEWBRANCH"
hg rebase -s12 -d.

我们需要做一个小的绕道并提交一个空的提交(我相信这是一个不必要的rebase限制)。我们首先移植(复制)第一个变更集,因为简单地重新设置一切都会失败。但是当新分支中的第一个提交出现时,我们可以简单地移动(= rebase)其余的分支。

提醒一句:rebase是改变历史的行动。在尝试此操作之前,创建本地存储库的(本地)克隆,以便在出现任何问题时(例如,键入错误的版本以进行rebase等),您可以获得它的备份副本。

编辑:根据Lazy Badger提供的提示简化步骤。谢谢!