如何在本地 checkout GitHub 上外部贡献者提交的 PR 所在 fork 仓库的分支代码

在日常处理 GitHub 上外部贡献者提交的 PR 时,可能会想将 PR 对应的代码 checkout 到本地, 这里涉及到如何快速 checkout PR 所在 fork 仓库的分支代码。

通常我们可能会通过 git clone 对应的 fork 仓库来实现,但是其实还有一个更便捷、不需要切换目录进行 clone 的方法。

我们可以通过下面的方法实现快速 checkout PR 对应的 fork 仓库分支代码的需求:

git fetch origin pull/<ID>/head:<BRANCHNAME>
git checkout <BRANCHNAME>

实际使用时,需要将上面命令中的 <ID> 替换为对应的 PR ID,需要将 <BRANCHNAME> 替换为你想在本地新建的分支名称。 下面是一个实际使用的示例(将 ID 为 47 的 PR 代码 checkout 到本地的 pr47 分支中):

$ git fetch origin pull/47/head:pr47
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 10 (delta 4), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (10/10), 3.25 MiB | 862.00 KiB/s, done.
From github.com:mozillazg/XXXX
 * [new ref]         refs/pull/47/head -> pr47

$ git log pr47

$ git checkout pr47
Switched to branch 'pr47'

Comments