在GitHub上参与开源项目

近日用到一个不错的开源库 AndroidCharts 使用方便,易于扩展和自定制。在使用的过程中发现了一个小bug,于是果断发起了pull request。第一次使用GitHub参与开源项目还是十分手生的,需要各种查资料,学习Git的用法。

参考了许多资料,这里记录一下在GitHub上参与开源项目的过程。 

1,寻找项目

可以是你使用到的项目,你觉得想参与的,或者在这里找:

2,查看社区和文档

一般项目中都有的文件。

  • Readme:几乎所有的Github项目都包含一个README.md文件。readme提供了该项目的一个概览及关于如何使用、构建甚至如何贡献于一个项目的相关细节。
  • Contributing:项目和项目维护者不同,所以每个项目所期望的作贡献的最佳方法也会有所不同。一定要注意一个标注为CONTRIBUTING的文档,Contributing文档详细描述了一个项目的维护者希望看到贡献的补丁或功能应该符合怎样的规格。这可能包含要写什么测试,代码语法规范或补丁集中的区域。
  • License:一个LICENSE文件当然就是该项目的许可证了。一个开源项目的license会告诉用户他们能做和不能做的(例如使用、修改、重新发布),及告诉贡献者他们允许其他人做的。有许多的办法对开源项目加上许可证,你可以在 choosealicense.com读到更多的关于每个许可证的含义。
  • Documentation and Wikis:许多大型项目有的不只有一个readme来指导人么如何使用他们的项目。在这种情况下你通常能够发现一个指向库中名为“docs”的另一个文件或文件夹的链接。

3,发起一个issue

如果你发现了你正在使用的项目中的一个bug(但是你不知道怎么去修复它),或对文档有不解或对项目有疑问 — 那么创建一个话题吧!这非常容易且一般你不管创建什么话题,你都可能不是唯一一个出现该问题的人,所以其他人可能会发现你的话题很有帮助。关于更多的话题介绍,请查看我们的Issues guide

话题专业提示

  • 在建话题之前检查已有的话题:话题重复对双方都无利,所以搜索整个正开放和已关闭的话题以检查你遇到的问题是否已经有人解决了。 
  • 务必对自己的问题有清晰的认识:期望的结果是什么?然而却发生了什么? 详细描述其他人如何重现该问题。
  • 在像 JSFiddle或 CodePen类似的平台上重现该问题并给出问题demo的链接。 
  • 包含一些系统相关的细节,比如用的什么浏览器、库或操作系统及版本号。 
  • 在你的话题或在 Gist里贴出你的错误输出或日志。如果在话题里贴出来,请用三个反引号``` 包围起来使得能够良好的呈现给大家。

4,fork

点击页面右上角处的fork按钮,这样github就会在你的帐户下fork一个同样的备份。

5,同步项目代码到本地

fork操作会将该项目添加到你帐户名下的项目主页面,有多种方式同步代码到本地。

直接下载源码的zip包【仅仅是代码下载不可同步】

CloneinDesktop通过github的windows客户端同步到本地【windows下推荐此方式】

使用ssh、https、sbuversion等协议同步到本地

6,创建分支

不管你是为了修改bug还是扩展功能,都强烈建议你单独创建一个分支。

7,修改内容并提交

可以执行变更并创建commit以追踪具体变更内容。

 
 
1
git commit −am "adding a smileyface to the documentation." 

8,推送

把主题分支推送到自己的项目fork当中。

 
 
1
git push origin your_branch_name

9,创建pull request

最后,需要创建一条pull request。首先,查看repo中的fork,我们可能会看到一条”您最近推送的分支”。如果结果确实如此,则可以选择”比较并pull request”。如果显示其它结果,则可以在下拉菜单中选择自己的分支,随后单击repo界面右上角的“pull request”或者“比较”按钮。

通过“比较并pull request(Compare and Pull Request)”按钮创建pull request

通过分支下拉菜单创建pull request

两种方式都会将我们引导至同一个页面,在这里大家可以创建pull request并在其中添加评论意见。该页面还以直观方式显示出我们所做出的各项变更。这将帮助项目管理员更轻松地查看自己已经完成的工作,同时简化决策过程、更快决定当前内容是否适合提交。如果变更存在问题,管理员可以在评论中提出质疑;管理员还可以要求我们清空pull request并重新提交,然后关闭pull request。

请注意,向项目管理员表达充分的尊重对于开源贡献而言非常重要;毕竟我们总是能够使用代码的分支版本,如果管理员不打算pull我们的变更,这往往与他们的角色定位有关。请记住,根据GitHub员工Zach Holman在《GitHub如何利用GitHub来创建GitHub》一文中所说,pull request实际属于对话的过程。最重要的是认同管理员的处理方式;相对于一味要求对方接受我们提交的内容,大家应当调整心态、只把提交过程视为与编写代码相关的对话通道。

 后记:

第一次参与开源项目的感觉还是蛮不错的,希望作者能将我的提交合并。后续如果有时间,我想基于该项目自己定制一些Android上的图表(现在github上的图表要么是不美观几乎是为了股票的显示而生的那种图、要么是美观但是不易用)或者参考该项目,自己新写一个开源控件。

参考:

如何在GitHub上协作开发开源项目?

在github上参与开源项目日常流程

Contributing to Open Source on GitHub

参与开发 GitHub 上的开源项目通常分为以下几个步骤: 1. 寻找感兴趣的项目:在 GitHub 上搜索或使用一些辅助工具(如 GitHub 官方推荐的 Explore、Awesome 等)来寻找自己感兴趣的开源项目。 2. 了解项目:了解项目的目标、功能、代码结构、文档等,可以阅读项目的 README、Wiki、Issues 等来获取更多信息。 3. 提交 Issue:如果在使用项目中遇到了问题,可以提交 Issue 来反馈问题。在提交 Issue 时,要尽可能详细地描述问题,包括复现步骤、期望结果、实际结果等。 4. Fork 项目:在 GitHub 上 Fork 项目的代码仓库,这样就可以在自己的账户下拥有一份完整的项目代码。 5. Clone 代码:在 Fork 的项目中,通过 git clone 命令将代码克隆到本地。 6. 创建分支:在本地代码的基础上,创建一个新的分支,用于开发自己的功能或修复问题。 7. 编写代码:在新的分支上,编写代码实现自己的功能或修复问题。 8. 提交 Pull Request:在开发完成后,在 GitHub提交 Pull Request 来请求合并自己的代码到项目的主分支。 9. Code Review:项目维护者会对提交代码进行 Review,包括代码质量、风格、文档等方面。 10. 审核通过:如果 Code Review 通过,项目维护者会将代码合并到主分支中。 参与开源项目需要耐心和技术能力,还需要与项目维护者进行良好的沟通和合作。参与开源项目可以提高自己的技术水平,也可以为开源社区做出贡献。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值