Git,提交了一个pull-request但发现代码中有一个bug,如何修复?

11
不久前,我提交了第一个 pull-request,并在代码中发现了一个错误。(没什么)。
我不想创建新的分支并提交/推送/拉取请求到新分支,因为这必须已经在第一个 pull-request 中了。
我要放弃这个 pull-request 并提交一个新的请求吗?还有其他方法吗?
编辑
我使用了 'git commit --amend' 但无法推送它。
我看到我的最新提交现在是 #B,而原始提交是 #A,并且 GitHub 网页显示我的 pull-request 指向 #A。
我尝试给它一个 -f 选项,但没有用。
3个回答

11
如果尚未拉取repo,您可以通过进一步的提交来修复错误,该提交将被拉取。

那我只需要提交/推送到我的_fork_repo吗?就这样? - eugene
你甚至可以强制推送一个新的修复版本到分支,而拉取请求会相应地更新。非常棒。 - kusma

7
如果您想保持您的拉取请求干净,我建议您在分支中对提交进行变基,以便错误甚至不可见,并强制将您的分支推送到GitHub。
如果您正在修复最新的提交,这很简单,只需修改它:
git commit --amend

GitHub会自动更新您的拉取请求中的提交内容,所以当其他存储库中的开发人员查看时,他们将只看到您希望他们看到的提交。

我总是努力确保Git中的提交讲述某种故事 - 从提交历史可以清楚地看出您正在做什么。当一个拉取请求被错误和后来修复这些错误的提交所淹没时,它会使故事变得难以理解。

我曾经接受过许多凌乱和不清晰的拉取请求。我强烈建议使用rebase分支来保持一切都清晰明了。


git status 显示了什么?它是否显示你在正确的分支上,并且其他所有内容都很干净?当你查看最后一次提交时,是否看到了你最新的工作?当你运行 git log 时,提交的哈希值是否与 GitHub 上的不同?git push origin <branch> --force 的结果是什么? - Sam Fen
这真是救了我的一命。我在一个拉取请求中有数十个评论。但我能够修复一个错误而不必重新提交我的拉取请求。 - Adam

2

GitHub的拉取请求会自动更新,只要您更新了它们所拉取的分支。因此,请继续推送额外的提交或修改之前的提交。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接