我过去使用过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)?
您可以使用'strip'永久删除提交及其所有后代.在您的情况下,您需要指定"D"修订版的ID:
hg strip -r D
Run Code Online (Sandbox Code Playgroud)
注意:必须打开mq扩展名:
[extensions]
mq=
Run Code Online (Sandbox Code Playgroud)
Mercurial备份.hg/strip-backup中剥离的变更集的捆绑包,因此此操作相当安全.
| 归档时间: |
|
| 查看次数: |
4489 次 |
| 最近记录: |