【发布时间】:2015-01-23 04:53:00
【问题描述】:
我们有一个存储库,我已将其作为上游添加到我的本地分叉中。有人发送了 PR,我想对其进行审查。虽然我可以通过他们的 Diff 工具查看 Github 上的代码,但我想将它放在我的本地机器上并在真实设备上对其进行测试,以确保它工作正常(它是 Android 存储库)。
查看此 PR 的最佳方式是什么?
【问题讨论】:
标签: git github git-pull pull-request
我们有一个存储库,我已将其作为上游添加到我的本地分叉中。有人发送了 PR,我想对其进行审查。虽然我可以通过他们的 Diff 工具查看 Github 上的代码,但我想将它放在我的本地机器上并在真实设备上对其进行测试,以确保它工作正常(它是 Android 存储库)。
查看此 PR 的最佳方式是什么?
【问题讨论】:
标签: git github git-pull pull-request
它的文档记录不足,但 GitHub 将拉取请求作为您的上游存储库上的分支提供,因此您无需为可能向您发送拉取请求的每个第三方添加远程。
所以
git fetch Upstream pull/1044/head:pr1044-from-someone
将使拉取请求中的提交在新分支的本地存储库中可用,pr1044-from-someone,您可以根据需要在本地查看和合并。
更多详情请见help.github.com's Modifying an inactive pull request locally。
【讨论】:
origin,因此这有助于使用方便的别名(使用 PR 编号和可选的新分支名称):git config --global alias.prfetch '!f() { git fetch origin pull/$1/head${2:+:$2}; }; f'
另一种选择是
将 PR 的存储库作为远程副本添加到本地副本中
git remote add remote_name github.com/user/proj
从此远程获取更改
git fetch remote_name branch_name_to_fetch
使用检查更改
git checkout remote_name/branch_name_to_fetch
现在您可以根据自己的需要在本地对其进行测试,您可以创建新分支,在分支之间进行差异等等。
PS:IMO,与您当前的方法相比,这有点乏味 - 如果您收到很多拉取请求,添加所有遥控器可能会令人困惑,并且获取所有分支历史记录不是最佳的,补丁是完美的。
【讨论】:
我只是想出了如何做到这一点。让我解释一下我为每个人做了什么,如何有同样的问题。
https://github.com/YOUR-NAME/REPO-NAME/pull/1044/files
.patch 并按 Enter 使 URL 看起来像 https://github.com/YOUR-NAME/REPO-NAME/pull/1044/files.patch
.patch(不是.txt)git apply --stat fix_empty_poster.patch
git apply --check fix_empty_poster.patch
git am --signoff < fix_empty_poster.patch
现在,您有一份分支副本供审核。
更多参考资料:
【讨论】: