我的同事意外地在默认分支中进行了两次提交,而不是创建新的自己的开发分支。
如何更改此情况并将这两个提交移动到新分支?
意外提交是否已经到达其他存储库,或者只是在他自己的存储库中?如果是这样,你可以跳到下面的部分“也许猫还在袋子里”,否则你可能会有相当多的工作要做。
你不是一个人
有关如何在Stack Overflow上的其他位置更正问题的更多讨论,请参阅here。所描述的是“适当”的方式
也许这只猫还在包里
如果更改仅在本地副本中,则更简单的解决方案是
想象一下以下场景:
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
上面的两个答案都是正确的,但假设一个尚未推送提交,则有第三种方式。
我刚刚成功使用rebase
命令将一串提交移动到我首先忘记创建的主题分支。
我第一次更新到我想要创建我的提交应该是的分支的修订版本,然后我在这个新版本和ta-da的错误分支中重新提交了最早的提交,完成了。
花费更多的时间来解释它,而不是使用TortoiseHg甚至命令行,真的。