git - 如何在 rebase 期间为所有提交运行测试

标签 git rebase

我有一个包含大量提交的功能分支。

A---B---C     master
 \
  \-B'---C'---D'...---Z'  feature

我正在处理功能,但另一位开发人员创建了提交BC。现在我想在提交 C 时对 feature 进行 rebase,但是我和/或 automerge 在 rebase 期间引入了错误。我的项目有很好的测试覆盖率,我可以使用 ant rebuild test 从控制台运行测试,现在我想让 git 告诉我哪个提交是第一个破坏我的测试的提交,这样我就可以修复它犯罪。我该怎么做?

最佳答案

当你在分支 feature 上时执行:

git rebase --interactive --exec "ant rebuild test" C

这将导致 git 在提交 C 时重新启动,在顶部重放您的工作,并且它将在重放阶段应用的每次提交后运行您的测试。

希望如果您的测试失败,您的 ant 任务将有一个非零退出代码。在这种情况下,一旦测试失败,git 就会停止。您立即处于正确的位置来修改您的提交,以便测试再次快乐。修改后,只需像往常一样执行 git rebase --continue ,git 将继续检查您的所有提交。

关于git - 如何在 rebase 期间为所有提交运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21560896/

相关文章:

git - 如何查看一个分支的更改是否已经在另一个分支中完成?

git - 如何删除 Netlify 部署的分支

svn - SVN 中维护分支的工具

git - 如何使用 git rebase 清理复杂的历史记录

git - 如何在交互式 git rebase 期间编辑挂起的命令?

git - git有没有快捷命令把HEAD固定成HEAD~1

Git压缩分支中的所有提交而不会发生冲突

git - 当我将新提交推送到 gerrit 时,如何从命令行设置主题?

git - 做 rebase 时我应该在哪个分支?

GIT:如何从初始提交中删除文件夹及其内容?