Gogs是什么呢?官方的说法是:Gogs 是一款极易搭建的自助 Git 服务。

那么看完了之后,依然一头雾水,这说的是啥?????

我们知道使用git的时候,远程库可以用github,或者自己Linux服务器安装git以后,创建一个自己的仓库,无论是github的远程仓库还是我们自己在linux上创建的仓库(相对于本地计算机来说,其实都相当于远程仓库),都可以在本地计算机上安装客户端进行远程克隆。

而gogs是什么呢?就是一个可视化的git仓库管理系统。相当于把github整搬到了你自己想要放置的地方,这样你就可以在这套系统里管理你的各个版本项目,功能基本和在github上使用区别不大。

那么既然有了github为什么还要自己弄这样一个系统呢?主要是因为github公共的项目,是开放的,相对于企业来说,理论上谁都可以进行访问并且把你的代码下载或者拷贝走,显然企业是不希望这样的,而我们自己安装的一套管理系统,就可以自己来管理,独立于github仓库。

安装方法参考文档就可以了,非常简单,完全中文说明。

这里要说的是钩子和守护进程的问题。

钩子:
使用git或者svn的时候,都有钩子的涉及。钩子是什么呢?就是git或者svn在执行任务的时候,任务开始之前、进行当中、开始之后,不同的阶段会触发的一些操作,而哪个阶段对应的可以进行哪些操作,记录在了git或者svn的hooks目录中的不同文件中,具体可以参考文档或者网上找教程。

这里要说的是,常规最常见的钩子的使用,就是在我们本地计算机对项目文件进行了更新并且同步到了远程仓库之后,我们希望能够自动触发一个操作,让我们在线上的项目能够自动更新到版本库的最新版本。

这个时候,就需要用到钩子了,如果我们远程仓库使用的是我们在服务器中创建的仓库,那么我们的钩子命令就要写到仓库中hooks目录中的相应文件中。而Gogs系统,同样也有钩子,和git的钩子雷同,Gogs系统的仓库目录中有hooks目录,其中存放的是处理不同任务的钩子命令文件,我们可以直接把命令写到相应的文件中去。

……………………………………………………………………………………………………………………………………………………

然后说守护进程,我们通常,Gogs系统下载解压好了之后,在Gogs的根目录,进行一个./Gogs web命令,系统就运行起来了,我们在浏览器输入localhost:3000  就可以访问到Gogs的可视化配置页面。在这个进行之前,还要创建一个服务器的新用户,名字叫git,并且用这个用户去执行 ./Gogs web命令,然后按着localhost:3000可视化配置页面的内容进行配置。但是有一个问题,命令行执行的结果是这样的:

命令行窗口处于进行中状态,没有办法进行其他操作,退出当前命令行,Gogs服务停止,localhost:3000页面不能显示。这个时候,就需要我们以守护进行进行运行,也就是后台运行,命令行窗口不影响使用:

首先根据自己的Gogs在服务器中存放的位置进行如下命令:

sudo ln -sf /home/gogs/gogs/scripts/systemd/gogs.service /usr/lib/systemd/
sudo chmod u+x /home/gogs/gogs/scripts/systemd/gogs.service
sudo ln -sf /home/gogs/gogs/scripts/init/centos/gogs /etc/init.d/
sudo chmod u+x /home/gogs/gogs/scripts/init/centos/gogs
sudo /sbin/chkconfig gogs on
sudo service gogs restart

然后在执行:

nohup ./gogs web &

然后命令行是这样的:

Logo

更多推荐