您的位置:首页 > 编程语言

【大牛之路】如何在github上为开源项目贡献

2017-11-22 17:07 447 查看

前言

我们在学习的日常中会用到的各种开源软件,大一点的Linux,Apache,Nginx,MySQL,Redis,小一点的Muduo,Axel,那么如何去给一个开源项目做贡献呢。

这里我主要介绍如何使用github来为开源项目贡献,或者说,使用github进行多人协作。

本文主要使用@Hg_Yi @dela @dongmengyuan 的Java Web项目作为示例,借用了@Axin的帐号来示范操作,感谢小伙伴们的友情支持。

正文

首先我们想为开源贡献的流程往往是:

1.找到一个需要的开源项目。

2.使用、或者学习它。

3.在学习/使用中发现问题,或者想为它做贡献(改bug,加feature)。

但问题是不知道如何贡献,或者说这个流程应该是怎样的。

这里我们用一个非常简单的例子来描述一下大致的流程。

首先Fork之

在你需要的项目主页,点击右上角的fork



这样你能拥有一份项目的拷贝,同时看到你的项目与主分支有哪些差异。

Fork好啦

这就是你自己的代码,你想怎么就怎么改。

需要注意的是可以看到多了一行

This branch is even with xiyouLinuxJavaWeb15:master

表示我们与主分支目前没有任何的差异。



把fork后的远程仓库拉到本地

这里就是准备在本地看代码和修改啦。

(这里我们已经进行了修改,并且push到fork的远程仓库)



提交Issue

Issue就是对项目的疑问,包括bug的提交,可以说是一个与其他人(主要是项目的拥有者)交流的方式。

当然对于社区来说,更加频繁的交流可要通过邮件列表。





提交PR

准备提交PR(pull request)



提交好的PR



然后就是等待了,会有项目的开发者review你的PR,进行讨论,修改直到符合之后,便会merge进主分支,你也就为开源项目贡献了自己的代码。

与远程同步

为了及时同步远程主分支,我们先要添加一个远程分支,使用git remote add,添加成功后,我们在本地就可以用git fetch拉下来,然后查看日志,如果确认无误,就可以git merge。

当然这里也可以直接git pull自动进行merge(这里手误多加了一个分支)



参考阅读

GitHub Pull Request

Github Issue

Git fetch和git pull的区别

Git基本概念

get log 查看提交历史

Pull Request的正确打开方式(如何在GitHub上贡献开源项目)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: