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

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

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


当前回答

如果你使用Github.com,转到“拉请求”,点击相关的拉请求,然后点击“命令行说明”链接:

其他回答

要获取远程PR到本地回购,

git fetch origin pull/$ID/head:$BRANCHNAME

其中$ID是拉请求ID, $BRANCHNAME是你想要创建的新分支的名称。一旦您创建了分支,那么简单

git checkout $BRANCHNAME

例如,让我们想象一下,你想从源主分支签出拉请求#2:

git fetch origin pull/2/head:MASTER

更多信息请参阅官方GitHub文档。

有一种使用git-cli的简单方法

gh pr checkout {<number> | <url> | <branch>}

参考:https://cli.github.com/manual/gh_pr_checkout

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

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

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

虽然这个线程上的大多数答案都可以工作,但我更喜欢在新的分支中获取一个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 checkout -b local-branch-name

拉遥控器PR

git pull git@github.com:your-repo-ssh.git remote-branch-name