我有一个善变的存储库.这是在转发A.我做了一些改变,承诺(转B),并推动.然而,后来,我意识到我不想做出那些改变.我更新回到rev A,并进行了一些替代更改,以转换C.
C
| -
| B
|/
A
Run Code Online (Sandbox Code Playgroud)
但是,现在我无法推动rev C,因为它抱怨它会创建一个新的远程头(它会).如何使远程mercurial简单地忘记rev B及其中的所有更改,所以我可以推动rev C并从那里继续?
编辑历史很难.将变更集推送到公共存储库后,就无法再从历史记录中轻松删除它.
解决您问题的最直接方法是:
hg update <tip of branch you want to forget>
hg commit --close-branch -m "close unwanted branch"
hg update <tip of branch you want to keep>
--force
因为现在存在分支上的多个头.如果你真的需要修剪分支,那么再次阅读EditingHistory.如果它仍然可行,您可以使用PruningDeadBranches中描述的方法之一.