前言:
本文旨在记录Git的pull request实战以及相关的技术好文的传送门(≧∇≦)
本文假定你已经有github账号,本地已经安装git。如果没有,请下拉至分割线( 30分钟入门github的传送门!(⊙o⊙)!)。
看过一篇文章,如果不擅长讲故事,那就从what 、why 、how三大法则讲起(^-^)V (什么!你有更好的讲故事套路?! 请教我(づ ̄3 ̄)づ)
what & why
Pull request是开发者使用Github进行协作的利器。
Pull Request是协作者修改代码后或在原基础上增加新代码后向仓库发送采纳的请求功能 ; 同时pull request还是一个专注于某个提议功能的讨论版,协作者可以根据code reviewer的意见再次修改并提交新的request。
how
在了解pull request的应用场景后,现在尝试在github上进行第一次的pull request。
由于最近在学习<a href="https://vuejs.org/">vue</a>,同时利用<a href="https://freecodecamp.cn/home">freecodecamp</a>的项目作为练手(毕竟自己提需求总是在徇私 W( ̄_ ̄)W ),所以把自己写好的<a href="https://github.com/CaiYiLiang/vue-demos/tree/master/wikipediaViewer-vuejs">vue小项目</a>链接提交到<a href="https://github.com/vuejs/awesome-vue">awesome-vue- Example ★11,002 </a>上面去,被尤大大的项目收录还是很激动哒(≧▽≦)/。
所以以下的对象:尤大大的awesome-vue仓库,本人(路人甲)的仓库。
Step 0:
先到Github page上对awesome-vue官方项目进行fork操作
Step 1:
在对awesome-vue官方项目进行fork操作后,自己的Github服务端就有了一个项目的副本,也就是可以在自己的repo中看到同名项目。
Step 2:
把刚刚fork的Github仓库克隆到本地,这样才能在本地对项目进行修改或者更新。打开cmd或者git bash,进行git clone。
git clone https://github.com/your-github-name/your-project.git
Step 3:
现在本地已经有了项目副本,是否可以立刻对项目进行更新或者修改呢?Github很棒的地方在于让我们每个协作者都有属于自己的开发环境而不影响主项目,项目reviewer可以看到你更新的部分并且进行与现有项目的合并。
现在,我们应该创建一个属于自己的分支,在这个属于自己的分支中进行更新,这个分支将是随后发起pull request时要提交的源分支。
cd your project
创建属于自己的分支,并切换到该分支
git branch -b your-branch
查看当前所在分支
git branch
Step 4:
在属于自己的分支进行项目内容更新,并且把你的更新提交到你的github远程仓库中。
编辑一些代码/更新项目文件
git commit -a -m "新功能的一些草稿"
git push orgin your-branch
Step 5:
好(o)/~ 现在可以把自己的项目更新进行pull request了!可以让项目reviewer看到自己的东西并且合并到项目中去了!!
Github上已经有了自己的feature分支之后,点击项目简介下的 New Pull request 按钮,创建一个pull request。
Step 6:
当点击New Pull request 按钮后,会自动跳转到官方项目的repo,
如下图,将vue/awesome-vue(<b>源仓库</b>)的master(<b>源分支</b>)合并到<b>目标仓库</b>的<b>目标分支</b>。
完成!O(∩_∩)O!
Step 7:
静静等待项目reviewer审核你的request。
参考Reference:
- <a href="http://blog.xiayf.cn/2016/01/18/github-fork-pull-request/">基于Github的pull request流程做开源贡献</a>
- <a href="http://jinlong.github.io/2015/10/12/syncing-a-fork/">如何同步 Github fork 出来的分支</a>
===================假装是分割线======================
Git 快速入门:
- <a href="https://github.com/geeeeeeeeek/git-recipes/wiki/1.1-%E6%9E%9C%E5%A3%B3%E4%B8%AD%E7%9A%84-Git">果壳中的 Git</a>
- <a href="http://www.jianshu.com/p/66f41a89b6b5">Github 的注册与使用教程以及github page (一)</a>
- <a href="http://www.jianshu.com/p/cd1430161149">三十分钟学会Git</a>
- <a href="http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html">常用 Git 命令清单</a>
- <a href="http://learngitbranching.js.org/">Learn Git Branching - 动画教学</a>
- <a href="http://www.jianshu.com/p/bfec042349ca">话说Svn与Git的区别(以后别再问我了)</a>
原创文章
简书:<a href="http://www.jianshu.com/u/c0600377679d">HelloCherry</a>
Github: <a href="https://github.com/CaiYiLiang">CaiYiLiang</a>
其它文章:<a href="http://www.jianshu.com/p/7a35fa90810f">Node.js | 更tech地解决Excel表的邮件地址</a>
vue-projects:<a href="https://github.com/CaiYiLiang/vue-demos">vue-demos</a>
如果觉得有一点点帮助,一个❤❤就是鼓励(。⌒∇⌒)