当您的提交未通过 GitHub 检查时该怎么办?
What to do when your commit fails GitHub checks?
好吧,我刚学了单元测试,GitHub 一天用 CircleCI 检查和拉取请求。我 运行 遇到了一个问题,因为我试图测试我对一切的理解:
- 我在本地有一个存储库,它设置为将更改推送到我的
GitHub.
回购
- 我编写了一些基本测试,这些测试通过了本地
pytest
测试运行程序。
- 我做了一些简单的更改来测试所有内容,提交并推送更改。
- 我去 GitHub 发现我没有通过我的 CircleCI YAML 文件中定义的测试,因为我的虚拟环境中没有安装 flake8(我不小心全局安装了它)。
- 我 return 到 PyCharm 并在我的 venv 中安装 flake8。
- 我更新我的
requirements.txt
以反映安装。
- ???
现在,我的问题是:当检查失败时,解决问题后 'updating' 拉取请求的最佳做法是什么。我是否只是做一个新的提交来修复它并开始一个新的拉取请求?或者,我是否找到一种方法来还原旧提交以包含有效的新版本?
拉取请求是草稿分支。在合并到目标分支之前,它并没有真正发布。你可以做任何你想做的事,只要它的最终修订符合预期。它的提交历史可能看起来很丑陋,但它会记录您为目标所做的事情。人们可能更喜欢 good-looking 的历史,即使是草稿。在这种情况下,可以使用 git rebase -i
、git reset --hard
、git commit --amend
甚至 git filter-branch
来重写一个整洁漂亮的历史,然后使用 git push -f
来更新拉取请求。当然,如果其他人也在处理同一个拉取请求,请始终在您想要 force-update 拉取请求之前通知他们。另一方面,如果它squash-merged到目标分支,它的历史,无论它是丑陋的还是good-looking,都不会被引入到目标分支。
好吧,我刚学了单元测试,GitHub 一天用 CircleCI 检查和拉取请求。我 运行 遇到了一个问题,因为我试图测试我对一切的理解:
- 我在本地有一个存储库,它设置为将更改推送到我的 GitHub. 回购
- 我编写了一些基本测试,这些测试通过了本地
pytest
测试运行程序。 - 我做了一些简单的更改来测试所有内容,提交并推送更改。
- 我去 GitHub 发现我没有通过我的 CircleCI YAML 文件中定义的测试,因为我的虚拟环境中没有安装 flake8(我不小心全局安装了它)。
- 我 return 到 PyCharm 并在我的 venv 中安装 flake8。
- 我更新我的
requirements.txt
以反映安装。 - ???
现在,我的问题是:当检查失败时,解决问题后 'updating' 拉取请求的最佳做法是什么。我是否只是做一个新的提交来修复它并开始一个新的拉取请求?或者,我是否找到一种方法来还原旧提交以包含有效的新版本?
拉取请求是草稿分支。在合并到目标分支之前,它并没有真正发布。你可以做任何你想做的事,只要它的最终修订符合预期。它的提交历史可能看起来很丑陋,但它会记录您为目标所做的事情。人们可能更喜欢 good-looking 的历史,即使是草稿。在这种情况下,可以使用 git rebase -i
、git reset --hard
、git commit --amend
甚至 git filter-branch
来重写一个整洁漂亮的历史,然后使用 git push -f
来更新拉取请求。当然,如果其他人也在处理同一个拉取请求,请始终在您想要 force-update 拉取请求之前通知他们。另一方面,如果它squash-merged到目标分支,它的历史,无论它是丑陋的还是good-looking,都不会被引入到目标分支。