Skip to content

工作目录和裸仓库分离

参考:

GIT_DIR和GIT_WORK_TREE的妙用,工作区和仓储可隔离

通过git自动部署WEB服务上的PHP代码,提交即生效

8.3 自定义 Git - Git 钩子

裸仓库指.git文件夹,工作目录指除.git文件夹外的其他文件

使用场景之一如下:

  1. 本地将修改好的代码上传到远程裸仓库
  2. 裸仓库获取到代码后,通过钩子生成工作目录,放置在其他路径下
  3. 服务器再对工作目录进行操作,比如nginx对静态文件进行托管

.git/hooks文件夹下新建post-receive文件

$ vim post-receive

添加如下内容

#!/bin/sh

git --work-tree=工作目录 --git-dir=裸仓库 checkout -f

授予执行权限

$ sudo chmod +x post-receive