Pull Request
概念
Pull Request 是一种通知机制。你修改了他人的代码,将你的修改通知原来的作者,希望他合并你的修改,这就是 Pull Request。
Pull Request 本质上是一种软件的合作方式,是将涉及不同功能的代码,纳入主干的一种流程。这个过程中,还可以进行讨论、审核和修改代码。
流程
第一步,你需要把别人的代码,克隆到你自己的仓库,Github 的术语叫做 fork。
第二步,在你仓库的修改后的分支上,按下 【New pull request】按钮。
这时,会进入一个新页面,有Base 和 Head 两个选项。Base 是你希望提交变更的目标,Head 是目前包含你的变更的那个分支或仓库。
第三步,填写说明,帮助别人理解你的提交,然后按下【create pull request】按钮即可。
最后,PR 创建后,管理者就要决定是否接受该 PR。
对于非代码变更(比如文档),单单使用 Web 界面就足够了。
但是,对于代码变更,Web 界面可能不够用,需要命令行验证是否可以运行。
实战
Fork
首先 fork 项目,比如
http://192.168.3.253/i2_trade.git
fork 之后
http://192.168.3.253/bbhou/i2_trade.git
Clone
项目 Clone 到本地
git clone http://192.168.3.253/bbhou/i2_trade.git
添加同步
为了需要和远程中心仓库更新和同步代码,需要在添加一个原始远程地址;
git remote add upstream http://192.168.3.253/hy_i2_trade/i2_trade.git
- 删除
git remote remove upstream
- 查看
$ git remote -v
origin http://192.168.3.253/bbhou/i2_trade.git (fetch)
origin http://192.168.3.253/bbhou/i2_trade.git (push)
upstream http://192.168.3.253/hy_i2_trade/i2_trade.git (fetch)
upstream http://192.168.3.253/hy_i2_trade/i2_trade.git (push)
Feach & Merge
远程代码的更新拉取到本地并且合并
git fetch --all
git merge upstream/master
参考资料
https://help.github.com/articles/about-pull-requests/
https://www.zhihu.com/question/21682976
http://www.ruanyifeng.com/blog/2017/07/pull_request.html