使用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 ...
随机推荐
- Comparación para 2019 Nueva Lonsdor K518S y K518ISE
Comparación para 2019 Nueva Lonsdor K518S y Lonsdor K518ISE: Igual: Capacidades de Immo y cobertura ...
- JobScheduler布置后台任务以及实现进程保活?
1.简介 在Android 5.0 提供了一套新的 JobScheduler API,它允许您定义要在以后的某个时间或在指定的条件下(例如,当设备在充电时)异步运行的作业来优化电池寿命. https: ...
- Sql数据库收缩 语句特别快
数据库在收缩的时候..使用菜单 >> 任务 >> 收缩 >> 文件 >> 数据, 特别慢..还会报错失败.. 但使用脚本 USE [dbName] G ...
- Spark Streaming初探
1. 介绍 Spark Streaming是Spark生态系统中一个重要的框架,建立在Spark Core之上,与Spark SQL.GraphX.MLib相并列. Spark Streaming是 ...
- Java入门系列-23-NIO(使用缓冲区和通道对文件操作)
NIO 是什么 java.nio全称java non-blocking(非阻塞) IO(实际上是 new io),是指jdk1.4 及以上版本里提供的新api(New IO) ,为所有的原始类型(bo ...
- preg_match()——php
第一,让我们看看两个特别的字符:‘^’和‘$’他们是分别用来匹配字符串的开始和结束,以下分别举例说明: "^The": 匹配以 "The"开头的字符串; &qu ...
- grep常用命令总结与基础正则
grep 'str'用来选取含有str的行 参数: -v 反向选取 -n 显示行号 -c 计算查找到字符串的次数 -i 选取时不区分大小写 基础正则表达式符: [list] 从字符集合里选出任意一个字 ...
- 记一次走心One 2 One沟通
聊的比较零零碎碎,内容比较散,有些solution不错,记一些要点吧(1)要学会汇报,就是坐你身边的人,也未必知道你在干啥 三个人都在砌墙.当人们分别问他们在做什么,他们的答案却不一样:第一个人头也没 ...
- HTML <a>标签的使用
<a></a>标签称作链接标记,由<a>与</a>所围的文字.图片等可以作为一个链接 Eg:<a href="index.html&qu ...
- Shiro - 关于session
Shiro Session session管理可以说是Shiro的一大卖点. Shiro可以为任何应用(从简单的命令行程序还是手机应用再到大型企业应用)提供会话解决方案. 在Shiro出现之前,如果我 ...