GitHub主要用于托管开源的项目,提供网页的方式浏览托管的项目。而有时项目并不想开源,那如何做到项目归属个人,GitHub需要花钱购买私有项目。使用GitHub需要联网。
由于GitHub私有项目需要花钱,GitLib和Gogs由此而生。两者都可以离线部署。
GitLib使用ruby语言开发,运行在Linux的平台上,对资源要求相对较高;
Gogs使用go语言开发,由于语言特性,Gogs能够跨平台部署,且对资源要求低。与GitLib、GitHub相比,起步较晚,相对不成熟,但基础功能完备,适合中小型企业,且部署简单。Gogs需要安装Mysql或SQLite3数据库.
开发目的:Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
GitLab 5.0以前版本要求服务器端采用 Gitolite 搭建,5.0版本以后不再使用 Gitolite ,采用自己开发的 gitlab-shell 来实现。如果你觉得安装麻烦可以使用 GitLab Installers 一键安装程序。
在功能上肯定是没有gitlab全面,但是就像IDE也有轻量级和重量级一样,看需求。
如果说,你只是需要个图形化的git服务,方便不超过5个人的小团队在上面同步下项目,那么gogs就非常好了。安装便捷,托管/issue/wiki都有,使用简单,学习迅速,足够了。如果是个大团队,需要谨慎地处理代码合并之间的冲突、更有效地管理代码版本,那么就选gitlab。
很多事情对于小团队而言,相互交流比在git服务上来操作检查快速的多。就比如代码合并,对于大团队而言,可能同时有数个人来修改代码,并提交PR,那么作为项目管理者合并的时候最佳的方式就有一个非常全面的工具来对比PR的差异,追溯版本,那么gogs是不够用的。但是对于小团队,可能也就1~2个人在修改代码,代码冲突的频率低,即使出了bug,直接电话或者微信交流比管理员自己看代码方便多了。而且,对于小团队而言,会不会有明确的项目管理员和程序员的区分也不一定的事。
最便宜的阿里云能轻松跑gogs,内存还能剩个500M
装上gitlab跪到开机不能(2G内存需求),得在gitlab启动之前把它的开机自启关了然后再重启
优点: 安装容易, 占用资源少, 启动快
缺点: 相比gitlab没有集成CI
gitlab用一段时间, gogs新装的
gitlab 重, 大, 全, 慢, 没有4G内存跑不起来
gogs 轻, 小, 功能据说少一些, 我还没有深入使用, 速度很快
继续使用gogs了, 云主机, 树莓派都能跑
嗯 ~所以综合对比之后,这里决定搭建一个轻量的gogs来玩一玩~
1、Gogs需要数据库的支持,这里我选择mysql8,已经提前安装好了,不再赘述
2、git需要提前安装,下载git
3、当前没有用到SSH,暂时没有安装SSH服务器
注册用户,注册的第一个用户会自动成为管理员
PS:参考:https://blog.csdn.net/weixin_42831477/article/details/85728530?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.control