【大牛之路】如何在github上爲開源項目貢獻

前言

我們在學習的日常中會用到的各種開源軟件,大一點的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上貢獻開源項目)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章