我有两台不同的服务器。一个用于存储库,另一个用于 Web应用程序。 我试图设置 post-receive hook。当我将代码推送到存储库服务器时,我希望项目代码在应用服务器中。
服务器
$ mkdir /home/yo/repo.git
$ cd /home/yo/repo.git
$ git init --bare
$ cd /hooks
$ touch post-receive.sh
$ chmod +x post-receive.sh
post-receive.sh
#!/bin/bash
while read oldrev newrev ref
do
git --work-tree=appuser@appserver:/var/www/multiverse --git-dir=/home/yo/repo.git checkout -f
done
本地
$ cd /home/Sites/multiverse
$ git init
$ git remote add origin repouser@reposerver:/home/yo/repot.git
$ git add .
$ git commit -am "initial commit"
$ git push origin master
如何使用post-receive实现此目的?
答案 0 :(得分:2)
post-receive
脚本必须安装在裸git(hooks
)的/home/yo/repo.git/hooks
目录中,且必须命名为post-receive
,不得有任何扩展名。