SiteServer CMS宣布徹底開放源代碼并融入開源社區,讓開發人員可以更輕松地集成與定制系統。遵循GPL 開源許可,將所有源代碼在 GitHub 上托管并開源(https://github.com/siteserver/cms) 。你可以查看代碼、建立自己的代碼分支并且重新使用它,也可以加入SiteServer CMS開源團隊,共同維護并完善產品。
本文旨在說明如何向官方提交自己修改過的代碼。在繼續下面的操作之前,必須具備以下條件:
- 有一個Github帳號,如果沒有可以到這注冊:https://github.com/join
- 本機已經安裝了Git,如果沒有可以到這下載:https://git-scm.com/downloads
以上工作都準備好之后,就可以開始以下的操作流程了。向SiteServer CMS 官方提交代碼的整體流程如下圖所示:
后面分三大部分詳細講解。
1、Fork SiteServer CMS 項目
通過瀏覽器輸入:https://github.com/siteserver/cms 進到SiteServer CMS系統托管在Github上的源碼庫,如下圖所示:
點擊上圖中右上角紅框位置的 “Fork” 按鈕即可完成項目的Fork工作了。
為了更好的推廣SiteServer CMS項目,可以點擊“Fork” 按鈕前面的五星按鈕給項目一個星級評價。
在自己的Github主頁上就可以看到Fork過來的項目了,如下圖所示:
項目地址也由:https://github.com/siteserver/cms
變成了: https://github.com/yourname/cms
2、Clone 項目到本地
注意,這里說的是把Fork庫(即B庫,項目地址:https://github.com/yourname/cms
)Clone到本地,而不是Clone官方庫(A庫)。
Clone項目的具體步驟是這樣的:
首先是運行Git Bash,通過命令
cd e:/siteserver
進到準備把項目Clone到的路徑下,如下圖所示:
然后輸入:
git clone https://yourname:password@github.com/yourname/cms
命令進行項目的clone工作。
其中 yourname 是指Github上的帳號,password是帳號登錄的密碼,這樣方便以后提交代碼時再次輸入帳號密碼的繁瑣工作了。如果看到類似以下結果,表示項目clone成功。
在打開本地 e:/siteserver
文件夾應該能看到一個cms文件夾,打開此文件夾進去看到如下圖所示內容:
在上圖位置,進入source文件夾,并雙擊siteserver.sln即可用visual studio 打開SiteServer CMS系統源代碼了,如下圖所示:
首先是通過命令
cd e:/siteserver/cms
進到本地項目庫根目錄,如下圖所示:
所有對本地項目庫的操作必須進到項目庫根目錄才能操作,如果是停留在e:/siteserver是無法進行任何操作的。
假設我們很長一段時間沒有從官方庫(A庫)中獲取代碼了,用本地庫(C庫)去修改代碼,能想像的到用這份代碼向官方提交被拒的概率有多大?正確的做法是在修改代碼之前需要從官方庫中獲取最新的代碼后再修改。所以我們還需要讓本地庫(C庫)和官方庫(A庫)建立起聯系,通過git命令:
git remote add upstream https://github.com/siteserver/cms
git fetch upstream dev
執行完以上命令后,再通過git命令:
git branch -a
查看當前項目庫所有分支,如下圖所示:
至此,本地項目庫有關配置就全部完成了,接下來就可以開始修改并向官方提交代碼了。
3、修改并向官方提交代碼
就正如前面所說,在修改代碼之前,一定要從官方庫(A庫)獲取最新代碼,并和本地庫(C庫)合并好。具體通過以下git命令:
git fetch upstream dev // 獲取官方庫(A庫)dev 分支最新代碼
git merge upstream/dev // 把A庫合并到C庫
如果有沖突,需要手動修復,之后就可以用visual studio 打開
E:\siteserver\cms\source\siteserver.sln
開始修改代碼了。
修改完之后通過以下git命令把本地庫(C庫)中修改過的代碼提交到Fork庫(B庫):
git status // 查看修改情況
git commit -am 'ekun008' // 提交修改,可能還需要用到其他命令git
git push origin master // 向Fork庫(B庫)更新代碼
具體操作結果如下圖所示:
至此,只是把修改好的代碼提交到了Fork庫(B庫)中,還需要從Fork庫中向官方庫(A庫)提交。具體方法是:
通過瀏覽器訪問Fokr庫主頁:https://github.com/siteserverekun/cms ,如下圖所示:
點擊上圖紅框 “New pull request” 按鈕,進入代碼提交界面,如下圖所示:
在此一定要注意,必須正確選擇好SiteServer CMS官方庫(siteserver/cms)的 dev 分支,即上圖的第一個紅框部分,然后點擊 “ Create new pull request” 按鈕,如下圖所示:
填寫好本次修復的主要內容之后,點擊 “Create pull request” 按鈕即可完成操作。
此時,進到SiteServer CMS項目官方庫(A庫)可以查看剛才的提交:https://github.com/siteserver/cms/pulls ,如下圖所示:
至此,向SiteServer CMS 官方提交代碼的全部過程講解結束,剩下的就是等待官方的代碼審查了。
歡迎大家來向官方提交代碼。