contos7编译安装git及搭建git远程版本库,及钩子自动更新

本文介绍如何在 CentOS 7 上手动安装最新版本的 Git,并完成必要的配置步骤,包括创建 Git 用户组和用户、初始化仓库、设置 SSH 密钥认证等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一  安装最新版git

1.查看yum源仓库git信息:

 yum info git
初始化的阿里云contos7的yum是1.8.3.1版本的;和官网不匹配;

2.依赖库安装
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-deve
yum install gcc perl-ExtUtils-MakeMaker

3.卸载低版本git(未安装可跳过)

通过命令:git –-version 查看系统带的版本,Git 版本是: 1.8.3.1,所以先要卸载低版本的 Git,命令:
 yum remove git;

3.下载最新版git源码包

cd  /usr/local/git       #进入文件位置,自定义,个人安装包存放位置,

wget https://github.com/git/git/archive/v2.9.2.tar.gz #下载最新源码包

tar -xzvf v2.9.2.tar.gz                    #解压目录

cd git-2.9.2
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install        #进行编译安装

vi /etc/profile      #添加环境变量 
export PATH="/usr/local/git/bin:$PATH"      #添加到文本中;
source /etc/profile   #是配置立即生效
git --version        #查看版本号

将git设置为默认路径,不然后面克隆时会报错

ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack 
ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack 

二    创建git用户及用户组
$ groupadd git
$ useradd git -g git
$ passwd git  #参数是用户名
最好切换到git用户 不然后面新建的git仓库都要改权限!之后克隆需要密码很可能是权限错误;
Git服务器打开RSA认证 。在Git服务器上首先需要将/etc/ssh/sshd_config中将RSA认证打开,

1.RSAAuthentication yes

2.PubkeyAuthentication yes

3.AuthorizedKeysFile .ssh/authorized_keys

这里我们可以看到公钥存放在.ssh/authorized_keys文件中。

将本地git公钥加入远程库authorized_keys中就不需要密码克隆了

收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

$ cd /home/git/
$ mkdir .ssh #新建文件夹
$ chmod 700 .ssh 
$ touch .ssh/authorized_keys  #新建文件
$ chmod 600 .ssh/authorized_keys
权限为git所有;

三    初始化仓库
$ cd /home/git
$ git init --bare ceshi.git

四   克隆到本地
git clone git@IP:/home/git/ceshi.git          #以git用户克隆

如果公钥已放入远程库,还需要密码,很可能是权限问题

五  添加钩子(自动更新)
vi post-receive     #编辑钩子文件,在ceshi.git/hooks/post-receive
写入
#!/bin/sh
DIR_ONE=/home/www/
git --work-tree=${DIR_ONE} clean -fd
git --work-tree=${DIR_ONE} checkout --force  #把内容复制到post-receive

chown -R git:git post-receive
chmod +x post-receive

在本地提交后查看路径/home/www/下是否更新

git更新时强制改变文件权限

在 .git/hooks/ 目录下 
新建一个名为 post-checkout 的文件

将下列内容保存

#!/bin/sh
pwd
echo "This is post-checkout hook"
chmod -R 755 ./* && chown -R www:www ./*
  • 1
  • 2
  • 3
  • 4

使post-checkout可以被调用 
chmod +x post-checkout





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值