查看 Git 上的 "pull request" 到 review/test PR

check out a "pull request" on Git to review/test a PR

我们有一个回购协议,我已将其作为上游添加到我的本地分支中。有人发送了 PR,我想对其进行审核。虽然我可以通过他们的 Diff 工具检查 Github 上的代码,但我想将它放在我的本地机器上并在真实设备上测试它以确保它工作正常(Android repo它是)。

查看此 PR 的最佳方式是什么?

我刚刚弄清楚该怎么做。让我解释一下我为大家做的如何有同样的问题。

  1. 转到 Github 上的 PR 页面。 URL 应该看起来像 https://github.com/YOUR-NAME/REPO-NAME/pull/1044/files
  2. 在 URL 末尾添加 .patch 然后按 Enter 这样 URL 看起来像 https://github.com/YOUR-NAME/REPO-NAME/pull/1044/files.patch
  3. 下载此文件或者如果无法下载则创建一个文本文件,复制页面并将其粘贴到文本文件中。确保扩展文件是 .patch(不是 .txt
  4. 创建一个新的本地分支并结帐到该分支
  5. 通过以下命令查看补丁中的变化。这只是统计数据,不适用任何内容:git apply --stat fix_empty_poster.patch
  6. 通过以下命令,您将看到您离麻烦有多近:) 如果没有抱怨,请高兴:git apply --check fix_empty_poster.patch
  7. 最后你可以通过以下命令修补它:git am --signoff < fix_empty_poster.patch

现在,您有一份分支副本供审阅。

更多参考资料:

  1. GitHub Tip: download commits as patches
  2. How to create and apply a patch with Git

另一种选择是

  • 将 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,与您当前的方法相比,这有点乏味 - 如果您收到大量拉取请求,添加所有远程服务器可能会造成混淆,并且获取所有分支历史记录是次优的,一个补丁是完美的。

它的文档有些不足,但是 GitHub 将拉取请求作为上游存储库的分支提供,因此您无需为可能向您发送拉取请求的每个第三方添加远程。

所以

git fetch Upstream pull/1044/head:pr1044-from-someone

将使拉取请求中的提交在新分支 pr1044-from-someone 的本地存储库中可用,您可以根据需要在本地查看和合并。

有关详细信息,请参阅 help.github.com's Modifying an inactive pull request locally