CentOS7 Git服务器搭建
服务器搭建
安装Git
添加新用户
创建空的Git仓库
1 2 3
| cd /home/git git init --bare test.git chown -R git:git ../git
|
在服务器端打开RSA认证
创建用于存放客户端公钥的文件
1 2 3 4
| cd /home/git mkdir .ssh cd .ssh touch authorized_keys
|
客户端创建SSH Key
1
| ssh-keygen -t rsa -C "a@qq.com"
|
该命令会在用户主目录的 .ssh 文件夹下生成两个文件用于保存私钥的 id_rsa
和用于保存公钥的 id_rsa.pub
windows 在 C:\Users\Administrator\.ssh
目录下
把生成的公钥导入服务器
1
| cat id_rsa.pub >> /home/git/.ssh/authorized_keys
|
配置钩子
Git用户
创建SSH Key
1 2
| sudo -u git ssh-keygen -t rsa -C "b@qq.com" cat id_rsa.pub >> /home/git/.ssh/authorized_keys
|
网站目录拉取
1 2
| su git git clone ssh://git@127.0.0.1/home/git/test.git
|
配置钩子
1 2
| cd /home/git/test.git/hooks/ vim post-receive
|
添加如下:
1 2 3 4 5
| #!/bin/bash export LANG=zh_CN.UTF-8 cd /home/wwwroot/www/test/ unset GIT_DIR git pull origin master
|
保存后
1 2
| chown git:git post-receive chmod +x post-receive
|
其他用户
lnmp的环境,用户为 www
创建SSH Key
1 2
| sudo -u www ssh-keygen -t rsa -C "b@qq.com" cat id_rsa.pub >> /home/git/.ssh/authorized_keys
|
设置Git用户
设置了 /etc/sudoers
添加:
1
| git ALL=(ALL) NOPASSWD: ALL
|
网站目录拉取
1 2
| su git sudo -u www git clone ssh://git@127.0.0.1/home/git/test.git
|
配置钩子
1 2
| cd /home/git/test.git/hooks/ vim post-receive
|
添加如下:
1 2 3 4 5
| #!/bin/bash export LANG=zh_CN.UTF-8 cd /home/wwwroot/www/test/ unset GIT_DIR sudo -u www git pull origin master
|
保存后
1 2
| chown git:git post-receive chmod +x post-receive
|
常用操作
回滚到任意版本操作
1 2
| git reset --hard xxx git push -f origin master
|
不保留本地
1 2
| git reset --hard git pull origin master
|
镜像服务器后
1
| sudo -u www ssh-keygen -R 127.0.0.1
|