我在服务器上设置了两个裸 git 存储库,文件路径如下:
/git/project.git/
/git/project2.git/
然后我添加了两个分支 dev 和 live。然后我在每个项目中添加了以下接收后挂钩
`
#!/bin/sh
while read oldrev newrev refname
do
echo "STARTING [$oldrev $newrev $refname]"
if [ "$refname" == 'refs/heads/dev' ]
then
GIT_WORK_TREE=/var/www/vhosts/devwebsite.com/httpdocs/ git checkout -f
elif [ "$refname" == 'refs/heads/live' ]
then
GIT_WORK_TREE=/var/www/vhosts/livewebsite.com/httpdocs/ git checkout -f
fi
done`
这适用于 1 个项目,但不适用于另一个项目。在第二个项目中,它似乎只适用于我推送的第一个文件,它恰好是一个 .gitignore 文件。
所以简而言之,这个文件是我推送时唯一会更新的文件。