背景
玩了一下 Git ,想到一个问题:企业内部怎么用 Git 呢?仓库哪里来呢?
理一理 Git 及其相关产品的区别:
- Git 分布式版本管理工具。
- GitHub 和 Gitee ,基于 Git 的互联网代码托管平台,一个是国外的,一个是国内的。
- GitLab,基于 Git 的互联网代码托管平台,可以在企业内部局域网部署,缺点是重量级。
- gogs,基于 Git 、易于搭建的 Git 服务,轻量级。
- Gitea,类似 gogs ,轻量级 Git 平台。
所以小项目、小公司,又不想曝露在互联网上的话,可以选择 gogs 来部署。部署 gogs 玩了一下,确实很容易。
安装
CentOS 系统下,准备操作:
- yum install git。
- 官网下载地址,下载最新版本 gogs_0.13.0_linux_386.tar.gz ,上传目标服务器。
- 解压:
tar -xvf gogs_0.13.0_linux_386.tar.gz
。 - 进入解压目录 gogs ,执行 :
./gogs web
。
第四步执行过程中,如果 go 依赖包不存在时,会碰到两个错误:
- 错误一:
/lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
。解决办法:执行安装命令yum -y install glibc.i686
。 - 错误二:
libpam.so.0: cannot open shared object file: No such file or directory
。解决办法:执行安装命令yum install libpam.so.0
。
解决完这两个问题后,再次执行启动命令:./gogs web
。
初始化
gogs 启动成功后,默认端口是 3000,访问安装页面:
简单配置为 SQLite3 数据库。
域名 localhost 改为目标主机 IP,系统运行用户设置为启动用户,SSH 勾选内置修改默认端口。
不创建用户,直接提交,自动跳转到登录首页:
创建一个用户,第一个帐号被视为管理员用户。
使用
创建用户并登录,进入系统首页:
操作界面比较简单,基本操作有:
- 创建组织
- 创建仓库
- 邀请成员
新建仓库的时候,总是会报错,多试几次就能创建成了。
访问仓库
创建仓库后,使用 SourceTree 克隆该仓库,就可以像其他开源应用一样访问 gogs 上托管的应用了。
推送时会弹出帐号认证配置:
输入在 gogs 上注册的帐号和密码后,就完成了文件推送了。
https 部署
如果需要将 gogs 改成 https 的部署方式,需要执行的操作:
第一步,修改 conf/app.ini 配置的 [server]
部分添加 PROTOCOL=https
:
第二步,生成 https 证书文件目录及文件:
这是官网搜到的默认的 https 的默认配置信息,需要生成证书文件放在 custom/https
目录下。
启示录
还有最后一个问题没解决,就是使用 SourceTree 访问 gogs 私服仓库的时候,每次都需要输入 gogs 的密码,想在 SourceTree 中创建全局帐号,尝试了每一种托管主机都不可行:
虽然麻烦一点,但是 Git 的操作的路径是打通了的。
总结:Git 基本用法、Git GUI 客户端用法 、gogs 私服搭建,一套搞下来,工具都弄明白了,可以出师了!