当我推送主分支时,我有一个 post-receive 钩子来在 webroot 中部署我的应用程序。 这是我的剧本:
#!/bin/bash
while read oldrev newrev ref
do
if [[ $ref =~ .*/master$ ]];
then
echo "Master ref received. Deploying master branch..."
git --work-tree=/var/www/mywebroot --git-dir=/home/myuser/myrepo checkout -f master
else
echo "Ref $ref successfully received. Doing nothing."
fi
done
问题在于,当我推送任何删除任何文件的提交时,删除的文件不会在webroot中删除。
答案 0 :(得分:1)
您可以在git checkout
行后面添加(使用git clean
):
git -work-tree=/var/www/mywebroot --git-dir=/home/myuser/myrepo clean -fd
这将删除未跟踪的文件和文件夹。