【问题标题】:Remove a bad commit from branch in mercurial从 mercurial 的分支中删除错误的提交
【发布时间】:2011-09-25 02:54:39
【问题描述】:

我遇到了以下问题:

我有 2 个命名分支,它们是产品的 2 个完整版本(例如 A 和 B),而不是在某些时候我需要引入从 A 到 B 的更改,因此我启动了以下命令:

hg merge A  

在那次提交和推送之后......而不是 2 个分支,我得到了 1 个,这对我来说是出乎意料的,因为我只想用 A 中的更改更新 B。不知何故,我设法再次获得了 2 个分支,现在我想删除分支 B 中的最后一次提交并且找不到最好的方法(我会说任何方法)。

谢谢。

【问题讨论】:

  • 你把它推到哪里去了?您是否可以控制其他谁(如果有人)拥有包含该变更集的克隆?
  • 我把它推送到一个远程仓库,但除了我之外没有人使用这个分支。这是分支 B 的最后一次提交,但分支 A 中有很多提交。
  • 好的,但是你把它推到哪里去了?它是像bitbucket之类的地方吗?如果是这样,您可能无法在服务器上摆脱它,因此我会留下它。如果您需要撤消变更集中的更改,您可以撤消该变更集以撤消其更改。它仍然会成为历史,但你已经否定了它引入的变化。

标签: mercurial branch commit


【解决方案1】:

只需继续提交到您希望仍然存在的分支。有一个命令可以明确地杀死一个分支,但如果你不使用它,所有的分支仍然是并行的。如果您没有看到它们,那只是因为如果它们没有不同,查看它们的工具不会显示它们,但它们仍然存在。只要继续与那些分支合作,就可以了。

现在要删除变更集,您“不能”像真正删除它一样,但您可以提交与该特定变更集完全相反的内容。执行此操作的命令是backout

【讨论】:

  • 谢谢我试过退出,但似乎我应该用错了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-17
  • 1970-01-01
  • 2023-01-12
  • 2013-10-14
  • 2011-07-02
  • 2017-01-24
  • 2020-10-18
相关资源
最近更新 更多