是否可以更改最后一次提交的分支?
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打开这个新分支。,它在服务器上提交所有内容。有可能吗?
答案 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提供的提示简化步骤。谢谢!