HelloX项目github协同开发指南
概述
為了提高協(xié)同開發(fā)效率,HelloX項目已托管到github網(wǎng)站上。根據(jù)目前的開發(fā)進展,創(chuàng)建了下列幾個子項目:
HelloX操作系統(tǒng)內(nèi)核項目:https://github.com/hellox-project/HelloX_Kernel.git
HelloX操作系統(tǒng)GUI模塊項目:https://github.com/hellox-project/HelloX_GUI.git
面向STM32的移植版:https://github.com/hellox-project/HelloX_STM32.git
后續(xù)根據(jù)需要,再增加其它相關(guān)子項目,所有這些子項目都是HelloX項目的一部分。
本文檔對如何協(xié)同開發(fā)進行描述,旨在幫助開源開發(fā)人員順利搭建起github協(xié)作開發(fā)環(huán)境,共同開發(fā)HelloX項目。
Github工作原理簡介
嚴格來說,github是一個網(wǎng)站的名稱,真正的版本管理功能是由git實現(xiàn)的。為了簡便,籠統(tǒng)的認為github就是一個版本管理系統(tǒng)就OK了。
其實,github的工作原理非常簡單,借用我們?nèi)粘i_發(fā)時使用的策略類比,會很容易理解。比如,現(xiàn)在有一個開發(fā)項目,這個開發(fā)項目經(jīng)過長時間積累,已經(jīng)有了數(shù)萬行代碼,并由一個組織或個人唯一管理(如果多個人同時管理,就亂套了)。你希望對這個項目進行修改或者優(yōu)化。這時候,謹慎起見,你不可能直接在原項目上進行修改,而是把原來的項目復(fù)制一份,在這個復(fù)制項目上進行修改。修改完畢后,會總結(jié)出修改了哪些內(nèi)容(修改了哪些文件,添加了哪些文件,刪除了哪些文件等),然后把修改的內(nèi)容提交給管理者審核,審核通過后,管理者會逐一合并到原有項目中。
Github自動化的實現(xiàn)了這個過程。原始項目存放在一個固定的位置,并由一個作者同意管理。比如對于HelloX項目的HelloX操作系統(tǒng)內(nèi)核源代碼,其固定存放位置是github.com/hellox-project/HelloX_Kernel,當(dāng)前的管理者是我本人。如果你希望參與開發(fā),對內(nèi)核進行修改,那么就需要首先復(fù)制一份(github上叫做fork),到你自己的位于github網(wǎng)站的個人空間內(nèi)。這時候你就可以隨便修改這份copy了。但由于這份拷貝是在網(wǎng)上,無法直接修改,因此你必須把這份copy下載到本地(github叫做clone),然后在本地進行修改。Github(嚴格來說,是github的本地工具)會監(jiān)控這個修改過程,把主要的修改內(nèi)容都記錄下來(之所以記錄過程,是方便倒回)。本地修改完之后,你告訴github(叫做commit),已經(jīng)修改完成了,github會把修改的內(nèi)容統(tǒng)一合并到本地代碼庫中。
注意,這時候你的修改還是停留在本地代碼庫中,尚未傳遞到你自己的網(wǎng)上空間內(nèi)。如果要把修改內(nèi)容上傳到你自己的github空間,需要執(zhí)行一個叫做push的操作,把本地commit的修改,推送到你自己的github空間內(nèi)。
一旦push完成,修改才同步到你自己的github空間中。為了把你的修改合并到原始代碼中,你必須發(fā)起一個pull request,告訴項目管理者,你做了哪些修改,為什么做這些修改,申請項目管理者合并到主流版本中。剩下的事情,就是項目管理者的事了,他會考慮這些修改申請,必要時會發(fā)起討論,或者跟你聯(lián)系,討論這些修改的必要性。如果最終確定這些修改是有價值的,那么項目管理者會merge到主流版本中,并記錄你的contribution。
好了,通過上面的描述,記住并理解下面的關(guān)鍵詞,后面的操作就非常簡單了:
Fork,clone,commit,push,merge
HelloX項目github協(xié)作開發(fā)指南
首先,你必須了解HelloX項目的背景及目標(biāo),判斷是否與您的背景或者意圖能夠匹配,以決定是否要投入開發(fā)。這個過程要慎重仔細,一旦決定要投入,那么就需要遵循開源精神,有始有終,當(dāng)然,您的貢獻會被盡量精確的記錄下來(HelloX項目的每個子項目下,都有authors.txt文件,記錄了貢獻者的主要貢獻及個人信息)。
在決定投入開發(fā)之后,剩下的事情就很簡單了。下面一步一步的介紹。
第一步:在github上注冊
在github上注冊一下,創(chuàng)建自己的user space。這個過程不細說,直接登錄github.com,點擊sign up即可。建議選擇注冊的用戶名、郵箱、密碼等信息,萬一您成為github上的大牛,一個很酷的名字會很重要。
第二步:fork待參與的項目
在github上注冊成功之后,會一直保持登錄。這時候,建議fork一下您希望參與開發(fā)的項目,比如您希望參與HelloX項目中的HelloX操作系統(tǒng)STM32版子項目,那么在瀏覽器地址欄中輸入https://github.com/hellox-project,即可連接到hellox項目的主頁下,頁面上會列出所有子項目。選擇其中的一個,進去之后,點擊頁面上的fork按鈕,即可復(fù)制一份到您自己的空間。
再回到您自己的個人頁面,即可看到fork過來的項目。
第三步:下載并安裝github客戶端
下列地址可以下載github客戶端:
https://help.github.com/articles/set-up-git
下載后,直接運行即可。注意,根據(jù)我的經(jīng)驗,上面網(wǎng)頁上下載的只是一個launch程序,并不是真正的github安裝程序。這個launch程序會進一步從github網(wǎng)站上(貌似托管在Amazon的云上)下載安裝程序。這個過程會比較長,網(wǎng)絡(luò)情況不好的話,可能會失敗。請多試幾次。
在安裝過程中,會提示您輸入第一步創(chuàng)建的github賬戶信息。
第四步:啟動github命令行客戶端,下載項目
最新的github版本,提供圖形界面和命令行界面。雖然圖形界面做得很簡潔很好看,但用起來還是感覺不太方便,我個人仍然傾向于github命令行客戶端。
按照缺省安裝,github會在桌面上生成一個git shell的圖標(biāo),雙擊即可進入命令行界面。這個命令行界面整合了github的相關(guān)命令和windows相關(guān)命令,比原來的unix命令行風(fēng)格好用了很多。
創(chuàng)建一個本地工作目錄,比如D:\HelloX,然后使用CD等命令,定位到工作目錄,運行下列命令:
D:\HelloX>git clone https://github.com/yourname/HelloX_STM32.git
即可把您在github上fork的項目,下載到本地。注意把上述URL中的用戶名,換成你自己的github用戶名。
下載完畢之后,進入新創(chuàng)建的項目目錄(位于您的工作目錄下),然后會發(fā)現(xiàn)命令行提示符變了。運行g(shù)it status命令,即可看到當(dāng)前項目的狀態(tài)。
第五步:對源代碼進行編輯和修改
這一步是核心工作,使用編譯器打開下載的項目,比如用MDK,可以直接打開STM32版的HelloX內(nèi)核項目。遵循正常的程序編寫流程,對源代碼進行修改即可。
第六步:提交本地修改
第五步修改完成之后,您所做的修改只是停留在源代碼文件中,尚未被github接納到它自己的數(shù)據(jù)庫中。這時候,必須在命令行下執(zhí)行commit操作。過程如下:
1.??????執(zhí)行g(shù)it status命令,會列做了修改的文件,包括增加的源代碼文件、刪除的源代碼文件;
2.??????執(zhí)行g(shù)it add . 命令(注意命令后面的點號),把修改增加到github管理的數(shù)據(jù)庫中;
3.??????執(zhí)行g(shù)it commit –m “修改描述” 命令,把修改提交到github本地庫中。注意,引號中的描述,是對本次修改的簡要介紹,會呈現(xiàn)在源代碼文件的修改歷史中。
完成上述步驟之后,您所做的修改就記錄到github本地庫中了。
如果做進一步的源代碼修改,修改完成后,重復(fù)上述操作,提交到本地庫中。
第七步:把本地修改上載到github
在本地代碼庫上完成提交之后,修改還是局限在本地庫,尚未上傳到github的個人空間內(nèi)。這時候執(zhí)行下列命令,把修改的代碼同步到您自己的github空間中:
D:\HelloX>git push –u origin master
其中的origin,代表代碼的原始版本,即是您自己在github上fork的版本(注意不是項目的最原始版本)。Master則是本地版本。
第八步:發(fā)起pullrequest,請求合并修改
Push到個人github空間之后,如果希望合并到項目的主版本中,必須發(fā)起pull request,讓項目管理員來審核您所做的修改,并決定是否合并到項目主版本中。具體操作是,在您自己的github項目頁面上,點擊pull request,會顯示出創(chuàng)建pull request的頁面。如果感覺頁面內(nèi)容很復(fù)雜,不要緊,直接點擊create pull request即可,大部分內(nèi)容,github已幫助您填好了。
到此,您的大部分工作就完成了,接下來就是項目管理員審核pull request,并討論是否最終合并到版本中。如果確定要合并,那么您的contribution會被記錄下來。
?
轉(zhuǎn)載于:https://www.cnblogs.com/fengju/p/6174197.html
總結(jié)
以上是生活随笔為你收集整理的HelloX项目github协同开发指南的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 翻译关于ViewController的一
- 下一篇: libgdx学习记录18——Box2d物