Pull Request是一种GitHub上可以通过以下多种方式在本地被检索的特别分支:
检索某个分支并临时储存在本地的 FETCH_HEAD
中以便快速查看更改(diff)以及合并(merge):
$ git fetch origin refs/pull/[PR-Number]/head
通过refspec获取所有的Pull Request为本地分支:
$ git fetch origin "+refs/pull/*/head:refs/remotes/origin/pr/*"
或在仓库的 .git/config
中加入下列设置来自动获取远程仓库中的Pull Request
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:tiimgreen/github-cheat-sheet.git
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:tiimgreen/github-cheat-sheet.git
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
对基于派生库的Pull Request,可以通过先 checkout
代表此Pull Request的远端分支再由此分支建立一个本地分支:
$ git checkout pr/42 pr-42
操作多个仓库的时候,可以在Git中设置获取Pull Request的全局选项。
git config --global --add remote.origin.fetch "+refs/pull/*/head:refs/remotes/origin/pr/*"
此时可以在任意仓库中使用以下命令:
git fetch origin
git checkout pr/42