【问题标题】:check out a "pull request" on Git to review/test a PR在 Git 上查看“拉取请求”以查看/测试 PR
【发布时间】:2015-01-23 04:53:00
【问题描述】:

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

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

【问题讨论】:

    标签: git github git-pull pull-request


    【解决方案1】:

    它的文档记录不足,但 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'
    【解决方案2】:

    另一种选择是

    • 将 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,与您当前的方法相比,这有点乏味 - 如果您收到很多拉取请求,添加所有遥控器可能会令人困惑,并且获取所有分支历史记录不是最佳的,补丁是完美的。

    【讨论】:

      【解决方案3】:

      我只是想出了如何做到这一点。让我解释一下我为每个人做了什么,如何有同样的问题。

      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

      【讨论】:

        猜你喜欢
        • 2015-02-18
        • 2019-05-07
        • 1970-01-01
        • 1970-01-01
        • 2018-09-20
        • 2017-05-05
        • 1970-01-01
        • 2019-09-19
        • 1970-01-01
        相关资源
        最近更新 更多