我想检查之前创建的拉请求(通过GitHub web界面创建)。我搜索了一下,发现不同的地方有裁判/拉或裁判/拉/pr
但是当我添加fetch = +refs/pull/*/head:refs/remotes/origin/pr/*到git配置文件并进行git取回时
我哪里做错了?GitHub应该自动创建拉/xyz东西,还是我必须配置一些东西?
我想检查之前创建的拉请求(通过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>
其他回答
你可以使用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
这个要点描述了当你进行git取回时发生了什么:
显然,改变github的url,以匹配你的项目的url。结果是这样的:
[remote "origin"]
url = git@github.com:joyent/node.git
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
fetch = +refs/heads/*:refs/remotes/origin/*
请注意fetch refspecs的顺序,正如crashneb在他自己的回答中所建议的那样。
如果不是,意思是如果你没有正确的顺序,因为:
Git添加remote.origin.fetch "+refs/pull/*/head:refs/remotes/origin/pr/*"… 然后信任pr -checkout自然地设置了新的本地分支,使用类似git开关pr/1的东西——然后你可能会遇到麻烦,如果pr更新了,你想要git再次拉它。 branch.pr / 1。合并配置值不正确。
现在获取所有的pull请求: $ git获取原点 从github.com: joyent /节点 * [new ref] refs/pull/1000/head -> origin/pr/1000 * [new ref] refs/pull/1002/head -> origin/pr/1002 *[新ref] refs/pull/1004/head -> origin/pr/1004 *[新ref] refs/pull/1009/head -> origin/pr/1009 ... 检查一个特定的拉请求: $ git结账pr/999 分支pr/999设置跟踪远程分支pr/999从原点。 切换到新的分支“pr/999”
问题259中列出了各种脚本来自动化该任务。 git-extras项目提出了git-pr命令(在PR 262中实现)
git-pr(1)——在本地检出一个pull请求
SYNOPSIS git-pr <number> [<remote>] git-pr clean DESCRIPTION Creates a local branch based on a GitHub pull request number, and switch to that branch afterwards. The name of the remote to fetch from. Defaults to origin. EXAMPLES This checks out the pull request 226 from origin: $ 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'
我正在使用hub,一个来自github的工具:https://github.com/github/hub
使用hub在本地检出一个pull请求有点容易:
hub checkout https://github.com/owner/repo/pull/1234
or
hub pr checkout 1234
要快速检查本地的PR,请打开它并检查从中创建PR的分支名称。
正如我们在上面的红线中看到的,分支的名称是'CLUPET-173-glrr-apis' 使用下面的命令来快速查看PR/Branch中的代码
git checkout origin/CLUPET-173-glrr-apis
现在这段代码在您的本地将运行为分离头模式。
停止所有PR代码查看,并返回到前一个分支
git switch -
如果你想移动PR(加上你在获取PR后所做的任何新的本地更改)到一个新的本地分支,使用下面的命令
git switch -c myNewLocalBranch
签出PR并查看与VSCode中的主分支相比PR的所有更改。类似文件更改部分Github的PR页面。
checkout PR(100)在“分离HEAD”状态 git fetch origin pull/100/head && git checkout FETCH_HEAD 显示为未提交的更改 Git重置主机 切换回主分支并执行这些更改 Git开关-