我怎样才能签出一个GitHub拉取请求?

我想看看以前创build的拉请求(通过GitHub网页界面创build)。 我search,发现不同的地方,一个裁判/拉或裁判/拉/公关

但是当我添加fetch = +refs/pull/*/head:refs/remotes/origin/pr/*到gitconfiguration文件并且执行git fetch

我做错了什么? GitHub应该自动创build拉/ xyz的东西,还是我必须configuration一些东西?

要将远程PR提取到本地仓库,

 git抓取原始拉/ ID /头:BRANCHNAME

其中ID是拉取请求ID,而branchname是要创build的新分支的名称。 一旦你创build了分支,那么简单

 git checkout BRANCHNAME

这将获取您不必命名分支:

 git pull origin pull/939/head 

我如何在我的机器上获得特定的拉取请求?

这个要点确实描述了当你做一个git提取时发生了什么:

很显然,改变github url以匹配你的项目的URL。 它最终看起来像这样:

 [remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = git@github.com:joyent/node.git fetch = +refs/pull/*/head:refs/remotes/origin/pr/* 

现在获取所有的请求:

 $ git fetch origin From github.com:joyent/node * [new ref] refs/pull/1000/head -> origin/pr/1000 * [new ref] refs/pull/1002/head -> origin/pr/1002 * [new ref] refs/pull/1004/head -> origin/pr/1004 * [new ref] refs/pull/1009/head -> origin/pr/1009 ... 

检查一个特定的请求:

 $ git checkout pr/999 Branch pr/999 set up to track remote branch pr/999 from origin. Switched to a new branch 'pr/999' 

您在问题259中列出了各种脚本来自动执行该任务。
git-extras项目提出了命令git-pr (在PR 262中实现)

git-pr (1) – 在本地检出一个拉取请求

概要

 git-pr <number> [<remote>] git-pr clean 

描述

根据GitHub拉取请求编号创build本地分支,然后切换到该分支。

要从中获取的远程的名称。 默认为origin

例子

这从origin检查拉请求226

 $ git pr 226 remote: Counting objects: 12, done. remote: Compressing objects: 100% (9/9), done. remote: Total 12 (delta 3), reused 9 (delta 3) Unpacking objects: 100% (12/12), done. From https://github.com/visionmedia/git-extras * [new ref] refs/pull/226/head -> pr/226 Switched to branch 'pr/226' 

我不小心写了几乎与git-extras提供的一样。 所以,如果你喜欢一个自定义的命令,而不是安装一堆其他额外的命令,只需把这个git-pr文件放在$PATH某个地方,然后你可以写:

 git pr 42 // or git pr upstream 42 // or git pr https://github.com/peerigon/phridge/pull/1 

引用Steven Penny的回答,最好创build一个testing分支并testingPR。 所以这是你会做的。

  1. 创build一个testing分支,将PR合并到本地。 假设你在主分支上:

git checkout -b test

  1. 将PR更改获取到testing分支

git pull origin pull/939/head:test

现在,您可以安全地testing本地testing分支上的更改(在这种情况下,命名testing ),一旦您满意,可以像平常一样从GitHub中合并它。

如果您使用的是Github.com,请进入“Pull requests”,点击相关的pull请求,然后点击“命令行说明”链接: Github.com上的命令行指令

上面一些选项的问题是,如果有人在打开PR后向PR推送更多的提交,他们将不会给你最新的版本。 对我来说最好的是 – 去PR,然后按“提交”,滚动到底部查看最近的提交散列 在这里输入图像说明 然后简单地使用git checkout,即

git checkout <commit number>

在上面的例子中

git checkout 0ba1a50

你可以使用git config命令来写一个新的规则到.git/config来从存储库获取pull请求:

 $ git config --local --add remote.origin.fetch '+refs/pull/*/head:refs/remotes/origin/pr/*' 

然后只是:

 $ git fetch origin Fetching origin remote: Counting objects: 4, done. remote: Compressing objects: 100% (2/2), done. remote: Total 4 (delta 2), reused 4 (delta 2), pack-reused 0 Unpacking objects: 100% (4/4), done. From https://github.com/container-images/memcached * [new ref] refs/pull/2/head -> origin/pr/2 * [new ref] refs/pull/3/head -> origin/pr/3 

我优先提取和结帐, 而不创build一个早午餐,并处于分离状态 。 它允许我快速检查拉请求,而不会污染我的本地机器不必要的本地分支机构。

git fetch origin pull/ID/head && git checkout FETCH_HEAD

其中ID是一个拉取请求和来源在哪里创build原始拉取请求。

我希望它有帮助