我已经使用post-receive hook为git repo设置了push-to-deploy,现在我需要以某种方式让它只检查存储库的特定目录的内容,如下所示:
repo.git/dir1/dir11 -> /var/www/html/site1
repo.git/dir2 -> /var/www/html/site2
我想只检查目录的内容,而不是完整的结构,所以最后我会有以下内容:
/var/www/html/site1/"whatever is in dir1/dir11/ directory".
感谢。
答案 0 :(得分:0)
为要维护的每个目标目录保留一个索引文件,并直接使用read-tree等低级命令。
number of pixels x 3
两个树# prefix the index paths with the repo's .git directory path
( export GIT_INDEX_FILE=site1.index
export GIT_WORK_TREE=/var/www/html/site1
git read-tree -um `git write-tree` commit:dir1/dir11
)
( export GIT_INDEX_FILE=site2.index
export GIT_WORK_TREE=/var/www/html/site2
git read-tree -um `git write-tree` commit:dir2
)
是结帐的基础,它假设您的索引是从第一个树派生的,并且转换到第二个树,如结帐(或快进合并,都执行相同的读取树) ,但合并更新当前HEAD,checkout切换它; read-tree根本不处理refs。写树只会吐出您最后读取树的相同树,或者最初是空树,除非您已经对索引做了其他事情。