git多人协作,web自动部署
搭建协作GIT服务器完成自动部署
需求
- 多人协作开发不混乱
- 自动部署
一条命令即可创建git裸仓库(中心仓库), 但是它不包含工作区
且没有文件. 只能作用于远端的中心仓库存在
我们可以利用git的hook钩子功能, push触发脚本写出文件到web目录. 实现简单的自动部署
安装git
- Linux/ubuntu/deepin/debain
1
2
3
4
5
6
7
8# 需要手动创建git用户
$ sudo apt-get install git
# 创建组
$ groupadd git
# 创建用户
$ useradd git
# 加入组 (前面组, 后面用户名)
$ usermod -a -G group git git - Linux/CentOS
1
2# 会自动创建git用户组和用户
$ sudo yum install git - Windows
1
去官网下载~
配置用户信息 (本地)
1 |
|
id_rsa.pub
是你的公钥, 用文本编辑器打开copy给服务器管理员
授权访问 (服务器)
git一般是以ssh(22)端口访问, 你需要收集用户的公钥, 授权ssh连接1
2
3
4# 进入git用户的.ssh目录 (没有就创建)
$ cd /home/git/.ssh
# 允许登录的用户, 把它们的公钥粘贴进去保存. 一行一个
$ sudo vim authorized_keysTis
:如果连接失败是因为你的linux发行版不包含ssh-server
需要手动安装一个ssh服务. 它的名字可能是sshd/openssh-server
ps -ef|grep sshd
看看ssh服务是否存在进程中
创建裸仓库
1 |
|
注意 web.git
权限必须是git用户的
接下来, 给裸仓库设置钩子脚本.1
2
3
4
5
6
7
8
9$ cd web.git/hooks
$ sudo vim post-receive
// 贴入以下代码 (/home/www 是文件输出目录)
#!/bin/bash
git --work-tree=/home/www checkout -f
$ chown git:git post-receive # git用户/组所有
$ chmod +x post-receive # 脚本文件需要执行权限
大功告成 :)
示例
1 |
|
git多人协作,web自动部署
http://edk24.com/2019/b60f4010.html