您需要向裸仓库(由 GitLab 管理)添加一个post-receive
钩子,该钩子将:
- 维护工作树(git checkout -f master)
- 从那个工作中复制你想要的文件
那将是:
cd ~git/repositories/yourRepo.git/hooks
touch post-receive
chmod +x post-receive
您可以确保只有在有人推动分支时才会激活钩子master
:
#!/bin/bash
while read oldrev newrev refname
do
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
if [ "master" == "$branch" ]; then
# Do something
fi
done
对于该钩子完成的结帐,请参阅“ GIT post-receive checkout without root folder ”,即:
确保您指定--git-dir
and --git-work-tree
:
git --git-dir=/path/to/project_root.git --work-tree=/path/to/your/workingtree checkout -f
同样,/path/to/your/workingtree
可以是:
- 只有一个中间工作树供您从中提取要复制的相关文件。
- 或您的应用程序的路径,如果您希望在您的 wab 应用程序的目标目录中更新 master 中的所有文件。