我想检查之前创建的拉请求(通过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 pull origin pull/939/head
如何在我的机器上获得特定的拉取请求?
其他回答
虽然这个线程上的大多数答案都可以工作,但我更喜欢在新的分支中获取一个pull请求,并对旧的提交进行软重置(将PR更改移动到staging区域),这允许我测试以及查看我的IDE中的差异。
git fetch origin pull/<PR-id>/head:<BRANCH_NAME>
git checkout BRANCH_NAME
然后对旧的提交进行软重置(参见使用git log的提交列表)
git reset --soft <hash_of_old_commit>
e.g
git fetch origin pull/65/head:test-branch
git checkout test-branch
git log # press 'q' to exit
git reset --soft 7d7fe166cd878ed70c559c4e98faf2323532
运行上述命令将提取PR的更改,并将它们显示在您的IDE版本中,它们不会被提交,您可以在登台区域中看到差异(就像这些更改是在本地进行的一样)。
参考:Github文档参考
这将在你不需要命名分支的情况下获取:
git pull origin pull/939/head
如何在我的机器上获得特定的拉取请求?
如果你遵循“github fork”工作流,在这里你创建了一个fork并添加了远程上游回购:
14:47 $ git remote -v
origin git@github.com:<yourname>/<repo_name>.git (fetch)
origin git@github.com:<yourname>/<repo_name>.git (push)
upstream git@github.com:<repo_owrer>/<repo_name>.git (fetch)
upstream git@github.com:<repo_owner>/<repo_name>.git (push)
要拉入当前分支,你的命令看起来像这样:
git pull upstream pull/<pull_request_number>/head
要拉入一个新的分支,代码看起来像这样:
git fetch upstream pull/<pull_request_number>/head:newbranch
参考Steven Penny的回答,最好创建一个测试分支并测试PR。
创建一个测试分支,将PR合并到本地。假设你在主分支上:
Git checkout -b test
让PR变更进入测试分支
Git拉原点拉/939/头:test
现在,您可以安全地在这个本地测试分支上测试更改(在这种情况下,名为test),一旦您满意,就可以像往常一样从GitHub合并它。
创建本地分支
git checkout -b local-branch-name
拉遥控器PR
git pull git@github.com:your-repo-ssh.git remote-branch-name