首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置git钩子从Github中拉出?

如何设置git钩子从Github中拉出?
EN

Stack Overflow用户
提问于 2014-09-13 02:53:08
回答 2查看 184关注 0票数 1

我在我的Mac上进行开发,并将其推送到Github。我通过SSH登录到我的服务器,然后我使用git将更改拉到服务器上。我希望当我将更改推送到Github时,它们会自动拉到服务器上,这样我就可以使用此信息创建一个.git/hooks/post-update文件

代码语言:javascript
复制
#!/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

我还应该怎么做才能让它正常工作?提前感谢你的回答。我将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2014-09-13 03:06:29

您还可以声明一个webhook on GitHub,以便生成一个可由服务器上的进程监听的event payload

该进程(侦听器)将负责触发git pull

您将发现此类监听程序的各种示例,例如:

票数 0
EN

Stack Overflow用户

发布于 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,当然是出于安全原因)。但如果是这样,你可以这样做:

代码语言:javascript
复制
#!/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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25814918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档