前言
之前在迷迷糊糊之间完成了服务器的git部署,现在做项目需要再次用到。故写下笔记。
提示
在此之前,你应该完成服务器上git的安装。
创建用户
useradd git
passwd git //为用户设置密码,后期clone、push等都会用到
添加用户权限
su root //切换到root用户,需要输入密码!
cd /etc/
vi sudoers //编辑此文件
在root ALL=(ALL) ALL下面添加(注意对齐)
git ALL=(ALL) ALL
提示
vi XXX后,按i进入编辑模式,完成编辑后按ESC并输入 :wq 保存,冒号使用英文输入法输入。
创建仓库
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==权限
创建钩子
如果你想将推送后的文件夹放在服务器的某个目录作为站点资源,你可以按照如下方法添加钩子文件。
cd blog.git/hooks
vi post-receive
编辑如下内容
#!/bin/sh
repodir=/home/git/repos/XXX.git //仓库位置
filedir=/www/wwwroot/XXX //文件输出位置
git --work-tree=${filedir} --git-dir=${repodir} checkout -f
保存后执行
chmod +x post-receive
exit // 退出到 root 登录
chown -R git:git /home/git/repos/XXX.git // 添加权限
之后,每当你push之后,filedir下的文件都会更新。
权限问题
如果push后filedir下未出现相关文件,请给对应目录777权限。
使用仓库
创建的仓库链接为(注意替换ip地址为你的服务器IP)
git@your_ip:/home/git/repos/XXX.git
原文地址:一颗橘子唐- 服务器部署git教程