我正在使用Mercurial,我在当地遇到了一个可怕的混乱,有三个头.我无法推送,我只想删除所有本地更改和提交,然后重新开始使用完全干净的代码和干净的历史记录.
换句话说,我希望最终得到(a)与远程分支的尖端中存在的本地完全相同的代码,以及(b)没有任何本地提交的历史记录.
我知道会hg update -C覆盖任何本地更改.但是如何删除任何本地提交?
要清楚,我没有兴趣保留我在当地完成的任何工作.我只想要最简单的方法来恢复到完全干净的本地结账.
我想完全删除Mercurial提交,就好像它从未在存储库中输入并返回到我之前的提交.
这可能吗?
我有这样的情况:
我已经提交了文件a,b,c,d.现在我发现错误地我提交了文件a和b; 所以在推送这些更改之前,我想要取消提交文件a和b,以便我只能推送c和d.有人可以通过使用mercurial命令告诉我如何做到这一点.
在这里,uncommit意味着我想要使用"hg out -p",然后查看更改集并手动执行操作.
我过去使用过Git而且我是一个Hg菜鸟:
我有以下存储库结构:
o [> default] commit A
|
o commit B
.
.
.
o <a-tag]
|
Run Code Online (Sandbox Code Playgroud)
我已经更新了提交,a-tag并提交了一些其他提交.我现在有
o [> default] commit C
|
o commit D
|
| o [default] commit A
| |
| o commit B
| .
| .
| .
| /
o <a-tag]
|
Run Code Online (Sandbox Code Playgroud)
现在(在推送之前)我意识到我有我的提交commit C并commit D基于错误的提交.我怎样才能回到初始状态(无需重新克隆存储库)丢弃这些提交commit C和commit D(吊坠git reset --hard a-tag)?