GitHub 的 Pull Request 是指什么意思?
程序员文章站
2022-04-17 22:07:25
...
作者:知乎用户
链接:https://www.zhihu.com/question/21682976/answer/79489643
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
<img src="https://pic3.zhimg.com/6aaed35908e74de871fcbed7c5affb0e_b.png" data-rawwidth="2010" data-rawheight="506" class="origin_image zh-lightbox-thumb" width="2010" data-original="https://pic3.zhimg.com/6aaed35908e74de871fcbed7c5affb0e_r.png">
2. 在你自己的机器上 git clone 这个仓库,切换分支(也可以在 master 下),做一些修改。
3. 完成修改之后,回到 test-pr 分支,点击旁边绿色的 Compare & pull request 按钮
<img src="https://pic2.zhimg.com/3e1ac7f58774a79a5dd6bf8e852e4199_b.png" data-rawwidth="2010" data-rawheight="476" class="origin_image zh-lightbox-thumb" width="2010" data-original="https://pic2.zhimg.com/3e1ac7f58774a79a5dd6bf8e852e4199_r.png">4. 添加一些注释信息,确认提交4. 添加一些注释信息,确认提交
<img src="https://pic3.zhimg.com/f5ed68dfe4d60fe90e2fb22ec1933006_b.png" data-rawwidth="1658" data-rawheight="1294" class="origin_image zh-lightbox-thumb" width="1658" data-original="https://pic3.zhimg.com/f5ed68dfe4d60fe90e2fb22ec1933006_r.png">5. 仓库作者看到,你提的确实是对的,就会 merge,合并到他的项目中
Fork A Repo - User Documentation
Using pull requests
Creating a pull request
链接:https://www.zhihu.com/question/21682976/answer/79489643
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
我尝试用类比的方法来解释一下 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 仓库,项目现在就在你的账号下了
<img src="https://pic3.zhimg.com/6aaed35908e74de871fcbed7c5affb0e_b.png" data-rawwidth="2010" data-rawheight="506" class="origin_image zh-lightbox-thumb" width="2010" data-original="https://pic3.zhimg.com/6aaed35908e74de871fcbed7c5affb0e_r.png">
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
<img src="https://pic2.zhimg.com/3e1ac7f58774a79a5dd6bf8e852e4199_b.png" data-rawwidth="2010" data-rawheight="476" class="origin_image zh-lightbox-thumb" width="2010" data-original="https://pic2.zhimg.com/3e1ac7f58774a79a5dd6bf8e852e4199_r.png">4. 添加一些注释信息,确认提交4. 添加一些注释信息,确认提交
<img src="https://pic3.zhimg.com/f5ed68dfe4d60fe90e2fb22ec1933006_b.png" data-rawwidth="1658" data-rawheight="1294" class="origin_image zh-lightbox-thumb" width="1658" data-original="https://pic3.zhimg.com/f5ed68dfe4d60fe90e2fb22ec1933006_r.png">5. 仓库作者看到,你提的确实是对的,就会 merge,合并到他的项目中
5. 仓库作者看到,你提的确实是对的,就会 merge,合并到他的项目中
以上就是 pull reqesut 的整个流程,希望对你有帮助~
参考文档:Fork A Repo - User Documentation
Using pull requests
Creating a pull request
下一篇: Ubuntu安装ROS Kinetic