0

我在本地提交了一个探索性和错误的变更集。该错误已在下一次本地提交中修复。现在我想推送已调试的版本,但以跳过错误的本地提交的方式。有没有办法简单地做到这一点。

4

3 回答 3

3

简短的回答:没有。

长答案:您可以将最近的提交链排除在推送之外,但在推送时您不能错过链的某些部分。这是因为 mercurial 跟踪您在提交时所做的更改,并且您最近的更改集可能在错误的上下文之外没有意义。

选项:

  1. 有些人会建议在将来使用MQ 扩展来避免这个问题。
  2. 有些人会建议使用MQ 扩展来剥离这两个变更集,然后只重新提交固定版本。这可能会造成麻烦,尤其是如果您已经与任何人共享了您的变更集。
  3. 有些人(包括我)会建议将您的存储库保持原样并推送两个变更集。如果您不修复它,那么在有缺陷的变更集中只会感到羞耻。
于 2012-11-13T13:08:25.997 回答
1

4 一些人(包括我)会推荐使用 MQ 扩展在推送之前将两个连续的变更集折叠成一个

5 有些人会建议使用 histedit 或折叠扩展在推送之前将两个连续的变更集折叠成一个

于 2012-11-13T13:59:32.637 回答
1

你可以试试这个:

  • 将您想要通过的提交导出为补丁
  • 在新目录中重新克隆您的存储库
  • 应用补丁
  • 现在对您的共享存储库执行单次提交
于 2012-11-13T14:04:05.080 回答