Git工作流承诺提交以前的两个修订版

时间:2013-10-25 08:32:48

标签: git git-svn

我现在有一个工作流程,我正在处理一个错误,我所做的任何更改都有两种类型:

  • 改进日志记录和断言以尝试调查错误,但不影响逻辑(尽管Heisenbugs
  • 尝试修复错误的逻辑更改

最初我添加一些日志记录并将其作为修订版A提交。然后我做了一些逻辑更改,用于修复bug并提交为修订版B.我现在对bug有了更多的了解,所以我可以添加更多的日志记录

我的问题是,如何将这些额外的支票添加回修订版A?最终,我希望最终得到两个提交 - 第一个只是额外的诊断,而修复是在第二个。我想功能有点像'修改先前提交',但我希望它适用于较旧的提交,而不是最新提交。

我可以看到我可以通过从修订版A创建一个分支并在那里提交新的更改,然后应用修订版B以及某种类型的压缩来实现这一点。有更简单的方法吗?

我正在使用git-svn,但我想解决方案将是一个git one

1 个答案:

答案 0 :(得分:2)

如果您尚未将更改提交到subversion存储库,则可以执行交互式rebase。

git rebase -i <commit before your changes>
# define order you want commits to appear
# optionally merge commits by replacing 'pick' with 'squash'/'s' or 'fixup'/'f'
# save and exit editor
# make sure resulting history is correct

这会更改历史记录,因此您不应该在已发布的历史记录中执行此操作。并且永远不会历史记录已写入subversion存储库(您的下一个dcommit将非常错误!)。另外要小心不要丢失任何更改或提交。