我的同事意外地在默认分支中进行了两次提交,而不是创建新的自己的开发分支。
如何更改此情况并将这两个提交移至新分支?
答案 0 :(得分:49)
想象一下以下场景:
D
|
C
| "I want to move C and D here"
B/
|
A
步骤:
hg update B
hg branch "mybranch"
hg commit --message "Create my branch"
hg update mybranch
hg graft -r C
hg graft -r D
hg strip -r C
(这应该是C最初的修订版)
strip
命令由您需要启用的扩展程序提供。你可以follow a guide on how to enable it on the Mercurial Wiki。
hg update default
答案 1 :(得分:38)
意外提交是否已经到达其他存储库,或者只是在他自己的存储库中?如果是这样,你可以跳到下面的部分'也许这只猫还在包里面。否则你可能会有相当多的工作要做。
你并不孤单
有关如何更正Stack Overflow上其他问题的更多讨论,请参阅here。所描述的是“适当的”#39;通往它的方式
也许这只猫还在包里
如果更改仅在本地副本中,则更简单的解决方案是
答案 2 :(得分:7)
上面的两个答案都是正确的,但是,假设一个尚未推送提交,那就是第三种方式。
我刚刚成功使用rebase
命令将一串提交移动到我首先忘记创建的主题分支。
我首先更新到了我想要创建我的提交应该是的分支的修订版本,然后我在最新版本和ta-da的错误分支中重新提交了最早的提交,完成了。< / p>
需要更多的时间来解释它,而不是使用TortoiseHg甚至命令行,真的。