服务器部署git教程

前言

之前在迷迷糊糊之间完成了服务器的git部署,现在做项目需要再次用到。故写下笔记。

提示

在此之前,你应该完成服务器上git的安装。

创建用户

1
2
useradd git
passwd git //为用户设置密码,后期clone、push等都会用到

添加用户权限

1
2
3
su root //切换到root用户,需要输入密码!
cd /etc/
vi sudoers //编辑此文件

在root ALL=(ALL) ALL下面添加(注意对齐)

1
git ALL=(ALL)   ALL

提示

vi XXX后,按i进入编辑模式,完成编辑后按ESC并输入 :wq 保存,冒号使用英文输入法输入。

创建仓库

1
2
3
4
su git
cd ~
mkdir repos && cd repos//在 "/home/git/" 下创建repos文件夹且进入repos文件夹
git init --bare XXX.git //创建名称为XXX.git的仓库

至此,服务器上的git仓库创建完成。

若出现git init .git: Permission denied,请给==/home/git/目录777==权限

创建钩子

如果你想将推送后的文件夹放在服务器的某个目录作为站点资源,你可以按照如下方法添加钩子文件。

1
2
cd blog.git/hooks
vi post-receive

编辑如下内容

1
2
3
4
#!/bin/sh
repodir=/home/git/repos/XXX.git //仓库位置
filedir=/www/wwwroot/XXX //文件输出位置
git --work-tree=${filedir} --git-dir=${repodir} checkout -f

保存后执行

1
2
3
chmod +x post-receive
exit // 退出到 root 登录
chown -R git:git /home/git/repos/XXX.git // 添加权限

之后,每当你push之后,filedir下的文件都会更新。

权限问题

如果push后filedir下未出现相关文件,请给对应目录777权限。

使用仓库

创建的仓库链接为(注意替换ip地址为你的服务器IP)

1
git@your_ip:/home/git/repos/XXX.git

警告

原创文章,转载请注明作者及原文地址