我怎样才能签出一个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。 所以这是你会做的。
- 创build一个testing分支,将PR合并到本地。 假设你在主分支上:
git checkout -b test
- 将PR更改获取到testing分支
git pull origin pull/939/head:test
现在,您可以安全地testing本地testing分支上的更改(在这种情况下,命名testing ),一旦您满意,可以像平常一样从GitHub中合并它。
如果您使用的是Github.com,请进入“Pull requests”,点击相关的pull请求,然后点击“命令行说明”链接:
上面一些选项的问题是,如果有人在打开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原始拉取请求。
我希望它有帮助