1. 程式人生 > >【大牛之路】如何在github上為開源專案貢獻

【大牛之路】如何在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(這裡手誤多加了一個分支)
這裡寫圖片描述

參考閱讀