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:[email protected]/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 官方提交代码的全部过程讲解结束,剩下的就是等待官方的代码审查了。
欢迎大家来向官方提交代码。