首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Mercurial中删除提交?

如何在Mercurial中删除提交?
EN

Stack Overflow用户
提问于 2011-02-23 06:41:48
回答 4查看 54.4K关注 0票数 56

我想完全删除Mercurial提交,就像它从未进入存储库中一样,并返回到我之前的提交。

这个是可能的吗?

EN

回答 4

Stack Overflow用户

发布于 2013-08-30 04:29:27

要编辑历史记录,我将使用Histedit Extension扩展。

代码语言:javascript
复制
 hg histedit 45:c3a3a271d11c

但是,请记住,只有在您尚未将提交推送到公共存储库、您拥有公共存储库和/或您可以考虑所有克隆的情况下,这才有意义。如果您收到以下错误:

代码语言:javascript
复制
abort: can't rebase immutable changeset 43ab8134e7af

这意味着draft认为这是一个已经被推送的公共变更集(参见phases) --您可以再次强制它成为Mecurial:

代码语言:javascript
复制
hg phase -f -d 45:c3a3a271d11c
票数 12
EN

Stack Overflow用户

发布于 2011-02-23 06:46:33

你可以使用"hg backout“来做一个基本的反向合并。所有选项都在免费提供的"Mercurial: the Definitive Guide“一书中讨论:

http://hgbook.red-bean.com/read/finding-and-fixing-mistakes.html

票数 5
EN

Stack Overflow用户

发布于 2011-02-23 07:48:47

如果它不止一次提交,并且/或者您已经将其推送到其他地方,那么您可以克隆您的存储库,并指定应该克隆的最后一个变更集。

请看我的答案,看看怎么做:

Mercurial: Fix a borked history

如果您只在本地提交,而没有推送,那么您可以在本地创建一个克隆(如我的链接中所述),然后就完成了。

如果您已经推送到某个远程存储库,则必须将其替换为您的克隆。

当然,这取决于你是否能够(或允许)这样做。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5084915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档