(100%浏览器内解决方案:收到别人的拉取请求,如何编辑它然后直接在github上合并?)
假设我在 GitHub 上有一个存储库
myproject
。
名为
userblah
的用户提出了 pull-request。
我尝试了以下操作,以测试他的修改:
git checkout -b userblah-test
git pull https://github.com/userblah/myproject.git
然后我就可以访问我的文件夹中的his版本了,这样就可以了。
然后我决定修改他的代码中的一些内容:我在文本编辑器中打开代码,做了一些修改并保存。
然后我想再次切换到 my
master
分支,但是我错误说我无法切换到 master,因为在当前分支 userblah-test
上进行了未提交的修改。
正确处理拉取请求的正确命令是什么?
我的意思是:
master
,这样用户名userblah
将被注册为文件的贡献者我认为您可能希望执行“合并”,这将从一个分支中进行更改,并将它们与另一个分支上的更改“合并”(组合)。 假设您想更改建议的代码:
git checkout -b userblah-test
git pull https://github.com/userblah/myproject.git
git add .
git commit
userblah-test
)git checkout master
git merge userblah-test
userblah-test
上所做的所有更改与当前分支合并)
,如果拉取请求是通过 GitHub 提交的,我建议您在拉取请求评论中告知原作者您想要进行的更改。作者应该愿意自己进行这些更改并将它们添加到拉取请求中。然后,您可以使用 GitHub 自己的 Web 界面合并他的 PR - 请参阅here了解更多信息。 拉取请求旨在促进围绕代码的讨论,如果您对此人提出的更改不是 100% 满意 - 告诉他们!
userblah
的 Pull 请求的方法:
git checkout -b userblah-test master
master
)git pull https://github.com/userblah/myproject.git master
git add .
git commit -m "test"
git checkout master
git merge userblah-test
git push
userblah
并没有出现在 Github 的贡献者列表中,就像
userblah
没有做任何事情一样...PR_NUMBER
、贡献者 GitHub 名称和贡献的分支,并在标题后的行尾检查目的地和贡献在链接中。 “...从
DEST_BRANCH
到 CONTRIBUTOR
:CONTRIB_BRANCH
”。最后,请注意贡献分叉存储库,通过单击链接即可看到,例如https://github.com/CONTRIBUTOR/CONTRIB_REPO.git
。
然后使用以下命令:# Get the PR
git clone https://github.com/ORGANIZATION/REPO.git
git checkout -b CONTRIBUTOR-CONTRIB_BRANCH DEST_BRANCH
git pull https://github.com/CONTRIBUTOR/CONTRIB_REPO.git CONTRIB_BRANCH
# Make all your changes, also with multiple commits, e.g.
git add .
git commit -m 'All my changes'
git push https://github.com/CONTRIBUTOR/CONTRIB_REPO.git CONTRIBUTOR-CONTRIB_BRANCH:CONTRIB_BRANCH
这要求您拥有贡献者分支的写入权限(如果您是审阅者,则默认),并且将自动更新您可以通过 Web 或GitHub CLI
合并的 PR。该代码使用 HTTPS URL,如果您使用 SSH,请更改它们。 注释
git clone https://github.com/ORGANIZATION/REPO.git
git fetch origin pull/PR_NUMBER/head:pr-PR_NUMBER
git checkout pr-PR_NUMBER
# Make all your changes, also with multiple commits, e.g.
git add .
git commit -m 'All my changes'
# Push your changes
git push origin pr-PR_NUMBER
从 pr-PR_NUMBER 分支创建新 PR(如果需要,可以在您的分叉存储库上),复制原始 PR 讨论中的信息,合并新 PR,并关闭引用新 PR 的原始 PR。所有这些解决方案都保留了贡献者的承诺和归属。
GitHub CLI
,许多命令都可以简化:
# Get the PR
gh repo clone ORGANIZATION/REPO
gh pr checkout PR_NUMBER
# Make all your changes, also with multiple commits, e.g.
git add .
git commit -m 'All my changes'
# Push your changes
gh pr push