搭建自己的git服务器,并实现代码的自动发布-资讯-赵建峰-蔚蓝的天空

搭建自己的git服务器,并实现代码的自动发布-资讯-赵建峰-蔚蓝的天空
80后网络程序员,现居北京,陕西省咸阳市长武县人,酷爱音乐
首页

搭建自己的git服务器,并实现代码的自动发布

487 次阅读最后修改于 2023-06-16 11:29:32

如果只是实现代码的管理,那么有许多免费的git库可以用。国内的话,我本人还是比较喜欢用腾讯的git库,毕竟大厂的比较稳定。但是有时候我们需要有发布版本的功能的话,那么,这些外部的库就显得有点捉襟见肘了,这时候我们就要考虑使用自己的linux服务器来搭建一个自己的git服务器,这样我们就可以进行更底层一些的操作。

接下来我将引导搭建按照下边的步骤,一步一步来搭建一个自己的git服务器。并实现代码发布的功能。


第一步,安装git

yum install git


第二步,创建git用户,和www用户的功能类似,git服务需要git的用户来执行。

adduser git


第三步,这里可以有两个选择:创建登录证书或者给git用户设置密码。如果用证书登录的话,每次拉取代码不需要输入密码就可以直接拉取,但是你得收集所有用户的公钥,就是id_rsa.pub,将里边的内容复制到/home/git/.ssh/authorized_keys里,一行一个。如果设置密码的话,每次拉取代码都需要输入一次密码,但我通常使用的都是软件集成的git,比如netbeans,其实只需要输入一次密码,后续就可以一直使用了,所以,我采用的是密码方式。


第四步,初始化git仓库,--bare参数代表是一个裸仓,裸仓就是没有工作区,在后边我们实现发布代码功能时候其实可以指定一个新的工作区,这里只是不要这个默认的工作区的意思。

git init --bare sample.git


第五步,将版本库文件夹的用户权限赋予git用户

chown -R git:git mycode.git


第六步,禁止通过shell登录,这一步主要是出于安全因素考虑,就是git这个账户只允许git代码拉取操作,不可以登录linux系统,所以要禁止通过shell方式登录,打开/etc/passwd

git:x:1001:1001:,,,:/home/git:/bin/bash

将这行修改为

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell


第七步,克隆代码

git clone git@IP:/storage/mycode.git


最后一步,就是设置发布钩子,在版本库里边,/storage/mycode.git/hooks里边新建post-receive文件

#!/bin/bash

read z j fm
branch=${fm:11}
cd /www/wwwroot/你的网站目录/

rm -rf $branch
mkdir $branch
cd $branch

git clone /storage/mycode.git

按您的需要修改好对应的值就可在推送代码的时候,在你指定的位置发布代码,然后你解析一个域名,就可以访问了。