Git存储库的Checkout子目录

时间:2015-10-30 19:47:01

标签: git deployment push hook git-checkout

我已经使用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".

感谢。

1 个答案:

答案 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。写树只会吐出您最后读取树的相同树,或者最初是空树,除非您已经对索引做了其他事情。