一、Git服务器搭建
1. 安装Git
yum install -y git
2. 添加新用户
adduser git
3. 创建空的Git仓库
cd /home/git
git init --bare test.git
chown -R git:git ../git
4. 在服务器端打开RSA认证
创建用于存放客户端公钥的文件
cd /home/git
mkdir .ssh
cd .ssh
touch authorized_keys
5. 客户端创建SSH key
windows 打开 git-bash
ssh-keygen -t rsa -C "a@qq.com"
该命令会在用户主目录的.ssh文件夹下生成两个文件:用于保存私钥的id_rsa和用于保存公钥的id_rsa.pub。
windows在 C:\Users\Administrator\.ssh
目录下
6.把步骤5生成的公钥导入服务器
cat id_rsa.pub >> /home/git/.ssh/authorized_keys
7.在客户端clone远程git仓库
修改为GIt服务器的IP
git clone ssh://git@127.0.0.1/home/git/test.git
客户端测试
cat 'a' > a.html
git add a.html
git commit -m'first commit'
git push origin master
二、配置钩子
1. 设置clone帐号的SSH key
我用的lnmp的环境 用户为 www
sudo -u www ssh-keygen -t rsa -C "b@qq.com"
cat id_rsa.pub >> /home/git/.ssh/authorized_keys
2. 设置Git用户使用www用户clone
设置了 /etc/sudoers
添加:
git ALL=(ALL) NOPASSWD: ALL
进入网站目录拉取
su git
sudo -u www git clone ssh://git@127.0.0.1/home/git/test.git
3. 配置钩子
cd /home/git/test.git/hooks/
vim post-receive
/home/wwwroot/www/test/
为网站目录,添加如下:
#!/bin/bash
export LANG=zh_CN.UTF-8
cd /home/wwwroot/www/test/
unset GIT_DIR
sudo -u www git pull origin master
保存后
chown git:git post-receive
chmod +x post-receive