/*
@Description centos7安装git服务端
@Author 好人1生平胸
@Date 2020-03-23 13:41
*/
服务器上安装git
安装此教程前,请确保服务器安装了openssh
yum安装git
yum install git
查看git版本
git --version
至此git已经安装完毕
创建git用户组和git用户
创建git用户组
groupadd git
新建git用户并添加至git用户组
adduser git -g git
给git用户设置密码
passwd git
创建git远程仓库
新建一个路径当做git远程仓库
mkdir /apps/svr/git
进入到svr目录
cd /apps/svr
修改新建目录所属组和用户
chown git:git git
进入到git目录
cd git
初始化一个空仓库
git init --bare XXX.git XXX为项目名
修改新建仓库所属组和用户
chown -R git:git XXX.git
修改新建仓库权限
chmod 774 -R XXX.git
回到上一级目录
cd ../
修改git目录权限**
chmod 750 git
将RSA认证打开
修改ssh配置文件
vi /etc/ssh/sshd_config
查看配置文件是否有以下配置,有则直接开启,没有需要新加
1.RSAAuthentication yes
2.PubkeyAuthentication yes
3.AuthorizedKeysFile .ssh/authorized_keys>
服务器上创建及配置authorized_keys
如果你创建了用户username,那该文件应该创建在/home/username/.ssh/authorized_keys;如果你使用的是root用户,该文件应该创建在~/.ssh/authorized_keys即root/.ssh/authorized_keys,本教程创建了git用户
创建authorized_keys文件
cd /home/git
mkdir .ssh
cd .ssh
vi authorized_keys
将需要远程克隆机器的RSA公钥添加至此文件,一行一个设置权限
chmod -R 700 /home/
修改所属组和用户
chown -R git /home/
禁止git用户shell登录
修改用户配置文件
vi /etc/passwd
找到git用户,将其末尾的/bin/bash改为/usr/bin/git-shell
设置钩子,将远程仓库的代码自动同步至另一目录,方便服务器上编写自动化部署脚本
切换到远程仓库所在目录
cd /apps/svr/git/XXX.git
进入到hooks目录
cd hooks
新建post-receive文件
vi post-receive
添加以下内容#!/bin/sh
# 删除git环境标量
unset GIT_DIR
# 该路径是为了方便编写自动化部署脚本所需要的,其实就是在服务器的另一位置克隆一份仓库
DeployPath="/apps/workspace/xxl-job"
# 自动同步的日志路径
LogPath="/apps/svr/git/xxl-job.git/hooks"echo -e "\n=================
date +"%Y-%m-%d %H:%M:%S"
===============\n" >> $LogPath/gitsync.log 2>&1 cd $DeployPath#git stash
#先拉取再合并
git pull origin master >> $LogPath/gitsync.log 2>&1#强制与远程服务器同步,不与本地合并,只能通过提交的客户端提交的方式修改代码。
#git fetch --all
#git reset --hard origin/master#time=`date`
#echo "web server pull at webserver at time: $time." echo "================================================" >> $LogPath/gitsync.log 2>&1
更改post-receive的所有者和权限
chmod -R 774 post-receive
chown git:git post-receive
创建gitsync.log日志文件
touch gitsync.log
更改gitsync.log的所有者和权限
chmod 770 gitsync.log
chown git:git gitsync.log
最后在刚刚指定的目录下克隆空仓库
切换到钩子文件里指定的目录,如还没有则新建
cd /apps/workspace
克隆一份空仓库
git clone /apps/svr/git/XXX.git
修改仓库所属组和权限
chown -R git:git XXX
chmod -R 774 XXX
暂无评论