Kop*_*pty 12 git githooks gitlab
背景:使用PHP Laravel框架和MySQL为数据库开发Facebook应用程序.
我在我们的开发服务器上设置了Gitlab,并在其上创建了一个存储库,其中添加了团队并提交和推送代码.
我想要做的是,当我将代码推送到GitLab上的特定分支(例如Master)时,我希望它可以在/ var/www/productname中使用,以便我也可以在Facebook画布中测试它(某些事情发生在那里,无法在您的本地机器上测试).
但是,我不希望钩子在每次主控上发生推送时复制所有文件,只需要修改的文件.
任何人都可以帮助这样的钩子吗?
谢谢.
Von*_*onC 11
你需要添加一个post-receive钩子,它可以:添加到裸仓库(由GitLab管理):
那将是:
cd ~git/repositories/yourRepo.git/hooks
touch post-receive
chmod +x post-receive
Run Code Online (Sandbox Code Playgroud)
您可以确保只有在某人推动分支时才会激活挂钩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
Run Code Online (Sandbox Code Playgroud)
对于该挂钩完成的结账,请参阅" GIT post-receive checkout without root folder ",即:
确保指定--git-dir和--git-work-tree:
git --git-dir=/path/to/project_root.git --work-tree=/path/to/your/workingtree checkout -f
Run Code Online (Sandbox Code Playgroud)
再次,/path/to/your/workingtree可以是:
| 归档时间: |
|
| 查看次数: |
4769 次 |
| 最近记录: |