码迷,mamicode.com
首页 > 其他好文 > 详细

centos7下git服务器端搭建

时间:2018-03-11 22:28:28      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:post   很多   /etc/   钩子   修改   服务器   b站   log   comm   

1、安装GIT

yum install git
git --version

接下来创建一个git用户组和用户,用来运行git服务:
groupadd git
adduser git -g git
passwd git

2、创建证书登录

收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把公钥导入/home/git/.ssh/authorized_keys文件里,一行一个。如果没有该文件创建它
git 安装及配置参考

 cd /home/git/ 
  mkdir .ssh 
  chmod 700 .ssh 
  touch .ssh/authorized_keys 
  chmod 600 .ssh/authorized_keys

3、初始化Git仓库

首先我们选定一个目录作为Git仓库,假定是/usr/local/git/project.git, 在/usr/local/git目录下输入命令:

cd /usr/local
 mkdir git
 chown git:git git/
 cd git
 git init --bare project.git

以上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。然后,把仓库所属用户改为git:
chown -R git:git project.git

4、克隆仓库

git clone git@192.168.33.10:/usr/local/git/project.git #可能需要输入git用户密码
git clone root@192.168.33.10:/usr/local/git/project.git #此时输入root密码

192.168.33.10 为 Git 所在服务器 ip

5、禁止git用户shell登录

vi /etc/passwd

修改git的bash 从/bin/bash改为/usr/bin/git-shell

设置git钩子

进入我们的裸仓库的hooks文件夹,然后新建一个post-receive文件。

cd hooks/

vim post-receive

在post-receive写入以下内容:

#!/bin/bash

git --work-tree=/www/carcartalk checkout -f

其中/www/carcartalk为你实际需要同步的站点目录。
然后修改post-receive为可执行文件(其实这就是一个脚本文件)

chmod +x post-receive

post-receive的原理就是,当远程仓库发现有用户执行了push操作,就会执行一个脚本post-receive(钩子)。其实git还提供了很多其它动作的钩子,这里我们就不深入了解了。

注意:同时你还需要修改你的web站点目录的权限,修改所属用户与用户组为git,否则钩子的权限可能会不足而导致执行失败。(你也可以通过添加git用户到相应的用户组来解决问题)

chown git:git -R /www    # 修改所属用户

设置好钩子后,当你本地再次执行push的时候,你会发现你web目录的文件也同步的更新了。

 

http://blog.csdn.net/baidu_30000217/article/details/51327289

centos7下git服务器端搭建

标签:post   很多   /etc/   钩子   修改   服务器   b站   log   comm   

原文地址:https://www.cnblogs.com/gaocy/p/8546345.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!