当您的提交未通过 GitHub 检查时该怎么办?

What to do when your commit fails GitHub checks?

好吧,我刚学了单元测试,GitHub 一天用 CircleCI 检查和拉取请求。我 运行 遇到了一个问题,因为我试图测试我对一切的理解:

  1. 我在本地有一个存储库,它设置为将更改推送到我的 GitHub.
  2. 回购
  3. 我编写了一些基本测试,这些测试通过了本地 pytest 测试运行程序。
  4. 我做了一些简单的更改来测试所有内容,提交并推送更改。
  5. 我去 GitHub 发现我没有通过我的 CircleCI YAML 文件中定义的测试,因为我的虚拟环境中没有安装 flake8(我不小心全局安装了它)。
  6. 我 return 到 PyCharm 并在我的 venv 中安装 flake8。
  7. 我更新我的 requirements.txt 以反映安装。
  8. ???

现在,我的问题是:当检查失败时,解决问题后 'updating' 拉取请求的最佳做法是什么。我是否只是做一个新的提交来修复它并开始一个新的拉取请求?或者,我是否找到一种方法来还原旧提交以包含有效的新版本?

拉取请求是草稿分支。在合并到目标分支之前,它并没有真正发布。你可以做任何你想做的事,只要它的最终修订符合预期。它的提交历史可能看起来很丑陋,但它会记录您为目标所做的事情。人们可能更喜欢 good-looking 的历史,即使是草稿。在这种情况下,可以使用 git rebase -igit reset --hardgit commit --amend 甚至 git filter-branch 来重写一个整洁漂亮的历史,然后使用 git push -f 来更新拉取请求。当然,如果其他人也在处理同一个拉取请求,请始终在您想要 force-update 拉取请求之前通知他们。另一方面,如果它squash-merged到目标分支,它的历史,无论它是丑陋的还是good-looking,都不会被引入到目标分支。