使用github参与到开源项目的维护
参与到开源项目的维护工作一般分两种,一种是由项目建立者拉入到贡献者列表中,拥有对项目的读写权限,而普通用户对项目仅有读取权限,另一种是fork项目到自己仓库,然后把修改后的内容发送给项目管理者者请求合并,是否合并到项目由项目管理者决定。
本文以symphony项目为例,项目地址https://github.com/b3log/symphony
1.fork到自己仓库

项目主页

fork完成
2.clone到本地

获取仓库地址

clone到本地完成
3.添加远程仓库
把原始仓库添加到本地远程仓库列表中,作用是当原始仓库有更新时本地可以及时的把原始仓库的最新数据拉取到本地然后合并,这样就可以使本地仓库与原始仓库保持同步,然后基于原始仓库我们就可以扩展新功能或修复问题

原始仓库地址

添加到本地远程仓库列表

抓取远程仓库数据,可以看到sym仓库的分支被抓取下来了,origin指向的远程仓库是我fork到github上的地址,可以看到此时所有的分支都指向了同一个提交对象,都是最新的代码,并且本地分支还未创建,所以无需进行合并操作。如果本地分支已经创建,并且拉取的远程分支与本地对应的分支不在同一个提交对象上,那么我们才需要去合并他们,一般是把远程分支并入到本地分支,因为服务器上总是最新的代码。
4.建立对应的本地分支
执行git checkout -b 3.1.0-dev origin/3.1.0-dev 在本地新建一个3.1.0-dev分支并自动的把fork仓库的3.1.0-dev分支设置为跟踪分支,跟踪分支的作用是当在这个本地分支上指向git pull时自动就会去拉取fork库的数据然后自动合并入本地的3.1.0-dev分支中,注意当我们在clone fork库的时候git就自动把fork库的master设置为本地master的跟踪分支了。当然我们也可以把sym仓库的分支指定为本地跟踪分支,不过建议使用fork库,因为以后开发中主要操作的仓库是它,更新频率会比较频繁,而sym库我们仅在需要时拉取下最新数据而已,有新数据手动合并就好了。
5.总结
以上是我个人对如何参与到开源项目开发的见解和思路。
基本上就是那样,首先是fork,然后是clone,在然后是添加原始仓库地址(如果你很欣赏某项目,但对这项目的后续发展有了不同的看法,想在某版本后让其独立出来按自己的规划路线去发展,这种情况可以省略此步骤,因为它后面的更新与自己规划相冲突,没有拉取的必要了),最后就是开发了:无穷的拉取,合并,分支的创建和删除,提交,打标签,推送,给原始仓库发送pull request等操作。
如何更新你fork的repo?
使用github参与到开源项目的维护的更多相关文章
- 怎样在Github参与一个开源项目
转载:http://www.csdn.net/article/2014-04-14/2819293-Contributing-to-Open-Source-on-GitHub 最近一年开源项目特别的热 ...
- 如何参与github上的开源项目
今晚比较闲,于是乎装修了一下博客,顺便将一块心病(怎么参加github上的开源项目)解决了,最后发个文章总结下 这些是参考的链接 http://blog.csdn.net/five3/article/ ...
- 我参与 Seata 开源项目的一些感悟
丁老师在他的知识星球邀请我回答以下一个问题: 我觉得这个问题非常有意思,姑且把它贴到公众号这里,与大家分享一下我对这个问题的一些感悟. 感谢丁老师的邀请问答: 在这里我就简单说下,我这段时间参与 Se ...
- GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。
1. ActionBarSherlock(推荐) ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便 ...
- 如何参与flink开源项目
参与flink开源项目 https://flink.apache.org/how-to-contribute.html 1.回答社区问题 2.撰写bug报告 3.对于改进建议或新的特征 4.帮助别人并 ...
- Fragment为载体可自己主动布局的CardView(GitHub上写开源项目初体验)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 开篇废话: 前些天一直在看Android5.0 的Material Desgin,里面新增 ...
- Pull Request的正确打开方式(如何在GitHub上贡献开源项目)
Pull Request的正确打开方式(如何在GitHub上贡献开源项目) GitHub的官方帮助如下: Fork A Repo: https://help.github.com/articles/f ...
- GitHub 优秀Android 开源项目
阅读目录 1.Xabber客户端 2.oschina客户端 3.手机安全管家 4.星座连萌 5.玲闹铃 6.魔乐盒 7.PWP日历 8.Apollo音乐播放器 9.夏普名片识别 10.高仿人人网 11 ...
- github 优秀的开源项目
https://github.com/wlcaption/AndroidMarket---- 这是手机应用商店,包含应用的下载,用户中心等内容 https://github.com/wlcaption ...
随机推荐
- HTTP请求的常用方法有哪些
HTTP请求的常用方法有:GET方法.POST方法.HEAD方法.PUT方法.DELETE方法.CONNECT方法.OPTIONS方法.TRACE方法.下面本篇文章就给大家介绍具体介绍一下HTTP请求 ...
- Caused by java.lang.IllegalStateException Not allowed to start service Intent { cmp=com.x.x.x/.x.x.xService }: app is in background uid UidRecord问题原因分析(二)
应用在适配Android 8.0以上系统时,会发现后台启动不了服务,会报出如下异常,并强退: Fatal Exception: java.lang.IllegalStateException Not ...
- 《大数据日知录》读书笔记-ch3大数据常用的算法与数据结构
布隆过滤器(bloom filter,BF): 二进制向量数据结构,时空效率很好,尤其是空间效率极高.作用:检测某个元素在某个巨量集合中存在. 构造: 查询: 不会发生漏判(false negativ ...
- 获取两个数之间的随机数-java
start=25 end=30 (int)(Math.random()*(end-start)+start)
- MySQL的模糊搜索
1.模糊搜索 第一时间我马上想到了关键字 like 1.1.所要查询的字段中包含特定 字符,但不确定其位置,使用两个%包起来 select * from phone where provider li ...
- 深入理解BSS(Block Started by Symbol)
理解ELF的BSS section, 可以概括为: Uninitialized global/static data "Block Started by Symbol" " ...
- Windows加密API的功能分类
本地数据加密保护本地数据加密保护机制提供了简单的DAPI调用接口,密钥管理等等一概由系统来处理.DAPI的数据加密保护机制在用户登录会话范围或者本地计算范围,使用操作系统设计的方式加密保护数据和解密还 ...
- Array中对象的排序
1.子母排序 NSArray *kArrSort = [_dic allKeys]; //这里是字母数组:,g,a,b.y,m…… NSArray *resultkArrSort = [kArrSor ...
- java 如何下载jar包
随着maven工具的使用,我们已经不再需要辛苦的找jar包,也不需要再买会员去下载jar包,但是还有一些同学,不知道怎么下载jar包,下面我给大家介绍一下,如何潇洒的找到自己想要的jar包. 首先,访 ...
- WPF 资源字典
使用好处:存储需要被本地话的内容(错误消息字符串等,实现软编码),减少重复的代码,重用样式,实现多个项目之间的共享资源;修改一个地方所有引用的地方都会被修改,方便统一风格; 使用方法,归纳起来主要有下 ...