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

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

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


当前回答

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

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

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

git checkout $BRANCHNAME

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

git fetch origin pull/2/head:MASTER

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

其他回答

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

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

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

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

如果你遵循“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

要快速检查本地的PR,请打开它并检查从中创建PR的分支名称。

正如我们在上面的红线中看到的,分支的名称是'CLUPET-173-glrr-apis' 使用下面的命令来快速查看PR/Branch中的代码

git checkout origin/CLUPET-173-glrr-apis

现在这段代码在您的本地将运行为分离头模式。

停止所有PR代码查看,并返回到前一个分支

git switch -

如果你想移动PR(加上你在获取PR后所做的任何新的本地更改)到一个新的本地分支,使用下面的命令

git switch -c myNewLocalBranch

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

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

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