说一说,那些年我们一起自建过的 Git 服务器

Git 服务器端搭建,基于 ssh 协议

服务端架设空 git repo

ssh 登录服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
groupadd git #增加git用户组
useradd jakehu -g git #增加名为jakehu的用户属于git用户组
ln –s /gitwork /git
#gitwork为实际工作目录,git为空目录做链接使用,可直接在根目录建立git文件夹即可

#以下造作操作是以直接在根目录下建立git文件夹为前提
chown jakehu.git /git
su jakehu
cd ~
cd /git
#空库的目录权限设定为 组内读写
#用--shared git会自动搞定创建起来的文件目录
# shared 参数很重要
git init --bare --shared test.git

到此为止服务器端架设完成

客户端生成密钥

1
2
3
cd ~
ssh-keygen -b 2048 -t rsa #生成密钥
#windows生成密钥方式不同,可用Pageant生成密钥

服务器端导入密钥

1
2
3
4
5
su jakehu
cd ~
cd .ssh
cat id_rsa_jakehu.pub >> authorized_keys
chmod 600 authorized_keys

最后访问地址: ssh://jakehu@serverIP/git/test.git

题外话

服务器上自动部署

1
2
3
4
root
cd /www/ #网站目录
sh git-deploy.sh
#https://raw.githubusercontent.com/jakehu/tools/master/git-deploy.sh

服务器上切换分支测试

1
2
3
4
root
cd /www/web
git checkout dev
chown -R www:www /www/web