让 Github 自动将任何更新推送到远程服务器的设置是什么?
这对于在 Github 上维护代码库以及让网站运行该代码库非常有用。
我在自己的电脑上有我的仓库,这是我工作的地方。
我在本地存储库中提交更改,并将它们推送到我的 Github 存储库。
我希望我的 Github 存储库将这些更改推送到我的远程服务器。
我整天都在研究,使用“钩子”听起来很合理。也许在 Github 上使用“接收后”挂钩,然后将推送命令运行到我的远程服务器。
有什么建议么?
让 Github 自动将任何更新推送到远程服务器的设置是什么?
这对于在 Github 上维护代码库以及让网站运行该代码库非常有用。
我在自己的电脑上有我的仓库,这是我工作的地方。
我在本地存储库中提交更改,并将它们推送到我的 Github 存储库。
我希望我的 Github 存储库将这些更改推送到我的远程服务器。
我整天都在研究,使用“钩子”听起来很合理。也许在 Github 上使用“接收后”挂钩,然后将推送命令运行到我的远程服务器。
有什么建议么?
据我了解,github 不允许您定义“真正的”钩子。就像收到后一样。相反,他们为开发人员提供了一种称为webhook的东西。你可以做的是,只要有推送到你的存储库,就会向你指定的任何 URL 发出 Web 请求。
所以你可以做的是:在你的远程 git 服务器上设置一个网络服务器,并配置 github 在接收后对其进行 http 调用。每当 github 通知您的远程服务器时,请从 github 拉取它。
请参阅此处了解如何使用 webhook:https ://help.github.com/articles/post-receive-hooks
PS 一个真正的钩子机制可能是 github 的一个安全漏洞,因为它允许您在他们的服务器上执行自定义代码。所以他们做了一些不允许你执行任何事情但仍然允许你做任何你想做的事情的东西。
为了说明Yervand的答案(赞成),请将此peligangit视为简单 HTTP 服务器的示例(您可以将其安装在您的 amazon-ec2 实例上),它将:
该库将获取,然后重置 origin/master 上的主分支。
这是一种方法。(见githook.py
)
def hard_reset_repos(self):
self.server.source_repo.fetch([self.server.source_repo.origin])
self.server.source_repo.reset(['--hard', self.server.source_repo.originMaster])