是否可以修改其他人已经开始的拉取请求?
假设我维护项目 X,并且用户 A 向我发送了拉取请求。有些事情我想在合并之前进行更改,并且可以自己快速完成。我怎样才能简单地做到这一点并将其全部保存在一个 PR 中?
这甚至可能吗?
你可以这样做:
在你的回购中,
git checkout -b new-branch
然后将用户 A 的提交拉入您的新分支:
git pull git://github.com/[User A]/[project-name].git
之后,您可以在新分支中随意更改它。当您测试并满足您的更改时,您可以将其合并到您的主分支中:
git checkout master
git merge new-branch
好的,现在您有了用户 A 的代码和您的更改。
我意识到这是一个老问题,但 GitHub 最近引入了一些新功能,可以实际更新另一个用户提交的拉取请求。
当您创建新的拉取请求时,您会看到一个标有“允许维护者编辑”的复选框。这是默认启用的。
有了这个,任何对作为拉取请求目标的存储库具有提交访问权限的人也将能够将更改推送到作为拉取请求来源的存储库分支。
这在团队环境中尤其有用,在这种环境中,每个人都可以提交对“主”存储库的访问权限,但所有工作都在各个分支中的功能分支上完成。这意味着如果有一个开放的 PR 需要一些更改并且主要作者不可用,团队中的其他人可以直接进行必要的更新,而不是关闭现有 PR 并打开一个新 PR。
假设您对用户的 github 存储库具有读写访问权限,您可以推送到拉取请求来自的分支。
它位于合并拉取请求按钮之前的拉取请求底部。
您可以通过推送到 yyyy/zzzzz 上的 XXXXX 分支向此拉取请求添加更多提交
不幸的是,不,以下不起作用:
git push -f upstream my-updates:refs/pull/999/head
...
! [remote rejected] my-updates -> refs/pull/999/head (deny updating a hidden ref)
error: failed to push some refs ...
不可能,但是您可以向他们的分支提交第二个拉取请求,如果他们决定合并它,它将更新原始拉取请求。
有可能的!您所要做的就是检查他们拉取请求中的分支并进行所需的更改。在您提交并推送这些更改后,它们应该会反映在 Github 的拉取请求中。