工作目录和裸仓库分离¶
参考:
GIT_DIR和GIT_WORK_TREE的妙用,工作区和仓储可隔离
裸仓库指.git
文件夹,工作目录指除.git
文件夹外的其他文件
使用场景之一如下:
- 本地将修改好的代码上传到远程裸仓库
- 裸仓库获取到代码后,通过钩子生成工作目录,放置在其他路径下
- 服务器再对工作目录进行操作,比如
nginx
对静态文件进行托管
在.git/hooks
文件夹下新建post-receive
文件
$ vim post-receive
添加如下内容
#!/bin/sh
git --work-tree=工作目录 --git-dir=裸仓库 checkout -f
授予执行权限
$ sudo chmod +x post-receive