本地克隆上的Git合并远程拉取请求

本地克隆上的Git合并远程拉取请求,git,github,Git,Github,我正在尝试对提交到git存储库的作业进行分级,以请求的形式提交。每个拉动请求是一个学生的提交。本回购协议中只有一家分行持有转让提示。 (我没有此回购协议的写入权限。) 我如何在本地机器上测试每个拉请求?我尝试过以下方法: 我使用github.com上的GUI克隆了主分支 我尝试按照说明在gitbash终端中输入以下内容: $ git checkout -b [student-alias] $ git fetch origin pull/1/head:[student-alias] --

我正在尝试对提交到git存储库的作业进行分级,以请求的形式提交。每个拉动请求是一个学生的提交。本回购协议中只有一家分行持有转让提示。 (我没有此回购协议的写入权限。)

我如何在本地机器上测试每个拉请求?我尝试过以下方法:

  • 我使用github.com上的GUI克隆了主分支
  • 我尝试按照说明在gitbash终端中输入以下内容:

    $ git checkout -b [student-alias]    
    $ git fetch origin pull/1/head:[student-alias] --update-head-ok
    
  • 提取:

    $ git fetch origin pull/1/head:[student-alias] --update-head-ok
    
给我以下错误:

远程: 计数对象:61,完成。
远程:压缩对象:100% (4/4),完成。
远程:共61个(增量21),重复使用20个(增量20), 打包重复使用37个
解包对象:100%(61/61),完成。

!![被拒绝]
refs/pull/1/head->[学生别名](非快进)


如果您只想测试每个分支,那么

git fetch origin [student-alias]
git checkout origin/[student-alias]
允许您将工作目录设置为每个分支的当前状态
[学生别名]

如果您想签出pull请求的状态(通常在github上与它所来自的分支的最新版本没有区别,除非合并),那么我建议遵循您链接的教程(没有未提及的
--update head ok
),然后继续

git fetch origin pull/[pull-request-id]/head:[student-alias]
git checkout [student-alias]

这两者之间的区别在于,前者在分支上工作,后者在pull请求上工作(这是github的一个特性).

您永远不应该使用
--update head ok
,这也不在github.com上的说明中。@dudeguypal与您声称要遵循的教程相比,您为什么要切换命令的顺序?