我在我的Mac上进行开发,并将其推送到Github。我通过SSH登录到我的服务器,然后我使用git将更改拉到服务器上。我希望当我将更改推送到Github时,它们会自动拉到服务器上,这样我就可以使用此信息创建一个.git/hooks/post-update文件
#!/bin/sh
echo
echo "**** Pulling changes into Live [Hub's post-update hook]"
echo
cd /mydirector/html || exit
unset GIT_DIR
git pull
exec git-update-server-info我还应该怎么做才能让它正常工作?提前感谢你的回答。我将不胜感激。
发布于 2014-09-13 03:06:29
发布于 2014-09-13 03:15:51
您需要认识到,在这种情况下,钩子不能在服务器上正常工作。服务器没有办法知道你做了一个推送(除非你有一个github webhook设置并且工作,在这种情况下,看看@VonC的应答),所以更新的钩子需要是本地的。钩子实际上并不是为此目的而设计的,如下所述:Local executing hook after a git push?
您真正想要做的是将您的更改同时推送到github和您的服务器。最简单的方法就是同时使用这两种方法。请参阅pull/push from multiple remote locations
通常,git-hooks被添加到服务器,这样在你推送到服务器之后,服务器可以做一些额外的事情(比如启动应用程序或其他东西)。(这里有一篇好文章:http://danbarber.me/using-git-for-deployment/)
但是,根据您的请求,您也可以使用接收后脚本来简单地执行推送。由于git不支持后推送git钩子,因此必须在git存储库上运行。然而,Github不允许这样做(他们只允许webhook,当然是出于安全原因)。但如果是这样,你可以这样做:
#!/bin/sh
git remote add live git@mydomain.com:www/mysite
git push live master
exec git update-server-info并确保将文件设置为可执行的chmod a+x post-receive
https://stackoverflow.com/questions/25814918
复制相似问题