我想检查之前创建的拉请求(通过GitHub web界面创建)。我搜索了一下,发现不同的地方有裁判/拉或裁判/拉/pr

但是当我添加fetch = +refs/pull/*/head:refs/remotes/origin/pr/*到git配置文件并进行git取回时

我哪里做错了?GitHub应该自动创建拉/xyz东西,还是我必须配置一些东西?


当前回答

在更新版本的Git中:

Git fetch origin refs/pull-requests/<id>/from:<localbranchname>

其他回答

参考Steven Penny的回答,最好创建一个测试分支并测试PR。

创建一个测试分支,将PR合并到本地。假设你在主分支上:

Git checkout -b test

让PR变更进入测试分支

Git拉原点拉/939/头:test

现在,您可以安全地在这个本地测试分支上测试更改(在这种情况下,名为test),一旦您满意,就可以像往常一样从GitHub合并它。

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

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

我更喜欢在不创建本地分支的情况下提取和签出,并且处于HEAD分离状态。它允许我快速检查拉取请求,而不会用不必要的本地分支污染本地机器。

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

其中ID是一个拉请求ID,上游是已经创建的原始拉请求(例如,它可以是origin)。

上面的一些选项的问题是,如果有人在打开PR后推送更多的提交,他们就不会给你最新的版本。 对我来说,最有效的方法是-进入PR,按下“提交”,滚动到底部查看最近的提交哈希 然后简单地使用git签出,即。

Git checkout <commit number>

在上面的例子中

git 结帐 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