商汇粹外网资源平台

搜索
查看: 2172|回复: 4

GitHub 的 Pull Request 是指什么意思?

[复制链接]

该用户从未签到

10

主题

21

帖子

95

积分

注册会员

Rank: 2

积分
95
发表于 2022-9-22 17:26:35 | 显示全部楼层 |阅读模式
我尝试用类比的方法来解释一下 pull reqeust。想想我们中学考试,老师改卷的场景吧。你做的试卷就像仓库,你的试卷肯定会有很多错误,就相当于程序里的 bug。老师把你的试卷拿过来,相当于先 fork。在你的卷子上做一些修改批注,相当于 git commit。最后把改好的试卷给你,相当于发 pull request,你拿到试卷重新改正错误,相当于 merge。
当你想更正别人仓库里的错误时,要走一个流程:

  • 先 fork 别人的仓库,相当于拷贝一份,相信我,不会有人直接让你改修原仓库的
  • clone 到本地分支,做一些 bug fix
  • 发起 pull request 给原仓库,让他看到你修改的 bug
  • 原仓库 review 这个 bug,如果是正确的话,就会 merge 到他自己的项目中
至此,整个 pull request 的过程就结束了。
理解了 pull request 的含义和流程,具体操作也就简单了。以 Github 排名最高的
https://github.com/twbs/bootstrap 为例说明。
1. 先点击 fork 仓库,项目现在就在你的账号下了





2. 在你自己的机器上 git clone 这个仓库,切换分支(也可以在 master 下),做一些修改。
~  git clone https://github.com/beepony/bootstrap.git~  cd bootstrap~  git checkout -b test-pr~  git add . && git commit -m "test-pr"~  git push origin test-pr
3. 完成修改之后,回到 test-pr 分支,点击旁边绿色的 Compare & pull request 按钮

4. 添加一些注释信息,确认提交

5. 仓库作者看到,你提的确实是对的,就会 merge,合并到他的项目中
以上就是 pull reqesut 的整个流程,希望对你有帮助~
参考文档:
Fork A Repo - User DocumentationUsing pull requests
Creating a pull request
回复

使用道具 举报

该用户从未签到

5

主题

24

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2022-9-22 17:47:25 | 显示全部楼层
我改了你们的代码,你们拉回去看看吧 !!!
回复

使用道具 举报

该用户从未签到

4

主题

27

帖子

86

积分

注册会员

Rank: 2

积分
86
发表于 2022-9-22 18:08:15 | 显示全部楼层
我从单纯的语言学角度解释一下为什么“pull request”这个词组这么令人费解。
先说正确的理解:pull request是一个request,它的目的是让别人pull你的东西。
然而pull和request两个名词直接相连构成偏正短语,二者之间具体是什么关系是不确定的。
思考:water hose, rubber hose, fire hose, garden hose 这四个短语中,两个词之间分别是什么关系?
我第一次看到pull request这个词组的时候,误以为这个request的目的是请求别人允许自己pull别人的东西。
另外,pull和request还都有动词义,放到一起的时候,还可能被误解成动宾短语(pull作动词,request作名词)。
英语中很多单词有多种词性,另外对一串名词直接相连构成词组的句法又比较宽容,这两个性质容易被滥用,造成沟通上的不便。
恰好汉语也具有这两个特点——你把上文中的“pull request”都换成“拉取请求”,看看是不是依然成立?
当然,熟悉了GitHub的工作流程后,你可能就不再感觉pull request这个词组有歧义或是费解了。
这是专业知识消除歧义的典型例子。
回复

使用道具 举报

该用户从未签到

6

主题

70

帖子

242

积分

中级会员

Rank: 3Rank: 3

积分
242
发表于 2022-9-22 18:29:05 | 显示全部楼层
有一个仓库,叫Repo A。你如果要往里贡献代码,首先要Fork这个Repo,于是在你的Github账号下有了一个Repo A2,。然后你在这个A2下工作,Commit,push等。然后你希望原始仓库Repo A合并你的工作,你可以在Github上发起一个Pull Request,意思是请求Repo A的所有者从你的A2合并分支。如果被审核通过并正式合并,这样你就为项目A做贡献了
回复

使用道具 举报

该用户从未签到

4

主题

55

帖子

166

积分

注册会员

Rank: 2

积分
166
发表于 2022-9-22 18:49:55 | 显示全部楼层
使用过git的应该都知道git pull,这个命名相当于连续执行两个命令git fetch然后git merge。所以,pull request的意思就是一个“请求”(request),请对方做一个git fetch拿到request中的代码commits,然后git merge一下到某个分支上。
pull request简称PR,是github的概念,不是git的概念,所以也不是立刻出结果的,需要有人去同意完成这个PR,当然同意完成PR的可以是自己,也可以拒绝PR。
现实项目中,即使自己对某个repo的特定分枝有写入权限,也可以提PR来修改,因为这是code review的一种方式,让团队的其他人看一看改的咋样。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表