centos7搭建私有git服务器并自动同步服务器项目

本文参考连接https://blog.csdn.net/shi851051279/article/details/95250402/

服务器环境: 阿里云 centOS 7.2 64位

1、服务器上安装git

yum install git -y  #安装git  -y可以免去中途的一些提示

git --version   #查看git版本 ,显示版本信息,说明安装成功,现在yum 源上最新的应该是1.8.3.1版本

2、 创建用于运行gitlab 的用户git

adduser git    #建立git用户
groupadd git    #建立git用户组
usermod -G git git    #将git用户加入git用户组同时从其他组移除
usermod -a -G root git    #将git用户加入root用户组,有-a参数不从其他组移除,此时git用户同时属于git组和root组
 
passwd git    #为git用户设置登录密码(这里回车以后会提示输入两次密码,两次密码都相同的话,设置密码成功)

3、创建git仓库目录
 

cd /home/git    #进入git用户目录(/home下的git目录是我们在第二步创建完git用户以后自动在/home目录下生成的)
#确保git目录拥有者是git用户,不是就修改chown git:git /home/git -R
mkdir test.git    #创建git仓库目录
cd test.git    #进入目录
git init --bare    #初始化仓库目录
cd ../    #返回上层目录
chown git:git test.git -R   #修改git仓库目录拥有者为git

4、创建服务器上web项目目录

由于是用宝塔安装的,直接到/www/wwwroot目录就行

cd /www   #我的环境是宝塔安装的,可以自行选择
chown git:git wwwroot -R    #拥有者改为git
chmod 755 wwwroot -R    #权限设为755

5、生成git公钥私钥

su - git
cd /home/git    #进入git目录
ssh-keygen -C 'your@email.com' -t rsa    #为你生成rsa密钥,可以直接一路回车,执行默认操作

修改权限

chmod 700 /home/git/.ssh   # 700是只git用户有读、写、执行权限。

6、免密码验证链接

vim /etc/ssh/sshd_config     #有可能会出现空白文件,是由于权限原因引起的,我是切换root用户修改后改回来的

确保打开一下三个配置

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys  #我的这个默认是打开的

修改完成后重新启动

systemctl restart sshd

同理,后边我们在客户端(自己开发的电脑上)克隆项目的时候也会让输入密码,所以我们也要在客户端生成一下rsa秘钥,(生成git 秘钥方法网上有很多,这里不再多赘述),我们需要把生成的id_rsa.pub (这个文件是公钥)里的内容拷贝出来放到接下来创建的 authorized_keys 文件中

vim /home/git/.ssh/authorized_keys    #创建authorized_keys文件
 
###将生成的id_rsa.pub中的内容全部粘贴进去,保存包含客户端的
 
chmod 600 /home/git/.ssh/authorized_keys    #修改权限 600是只有拥有者有读写权限。

7、创建git钩子(hooks)web项目目录下代码自动同步

cd /home/git/test.git/hooks    #进入hooks目录
vim post-receive    #创建post-receive文件
 
#####填入如下内容
 
#!/bin/bash
DIR=/www/wwwroot/test	#指定代码自动检出目录
 
git --work-tree=${DIR} clean -fd
 
git --work-tree=${DIR} checkout --force		#直接强制检出

DIR 变量对应的目录就是 放置web项目代码的目录,也是线上git仓库的工作区
修改权限:

chmod +x post-receive    #赋予执行权限

8、在web项目目录下克隆git仓库

cd /www/wwwroot    #进入www目录
git clone git@{服务器公网ip}:test test    #克隆线上仓库到test目录

9、客户端克隆项目

git clone git@192.168.0.103:/home/git/test.git  #192.168.0.103 是服务器的公网ip ,这里是随便写的,请自行改正

10、测试

git add .
git commit -m "第一次提交"
git push origin master

push成功以后,去服务器上查看是否有index.html 文件,并vim index.html 打开此文件查看内容是否完整。
至此,整个代码同步功能就完成了!以后就不用再去服务器端的web项目目录下手动去pull 代码了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值