Ubuntu 自动从 Github 仓库拉取
Posted
技术标签:
【中文标题】Ubuntu 自动从 Github 仓库拉取【英文标题】:Ubuntu automatically pull from Github repo 【发布时间】:2015-09-19 10:30:32 【问题描述】:我在我的服务器上安装了 git,但我希望每当我在本地推送我所做的更改时,它都会从我的 github 存储库中提取。
我研究了钩子,但它非常令人困惑,我找不到任何教程。有人知道怎么做吗?
【问题讨论】:
如果拉取代码失败会发生什么?直接还是间接? 我不确定你在问什么。就像从 Github 拉取错误一样? 1.你拉了一些东西,合并 2 有错误。你拉了一些东西,没有错误,但代码和你的更改显然是错误的。你必须运行测试,伙计 1.如果在合并期间发生错误,最好在我猜的错误之前保留当前版本。 2. 我可以在本地处理我的代码来解决这个问题。基本上我要做的是在本地创建一个网站,然后当我推送这些更改时,我的远程服务器从 github 中提取这些更改。 当然由你决定。但是简单的脚本可能会起作用,称之为 gpush,检查答案 【参考方案1】:但是简单的脚本可能会起作用,称之为 gpush:
#!/bin/bash
git pull
if [$? -ne 0]; then
... error processing
fi
git push
【讨论】:
1.不应该是 git pull 因为它是从 repo 中提取的吗? 2. 如何设置它以从特定的 Github 存储库中提取? @Sosa 1. 不太明白。首先它会git pull
,然后检查它的返回码和错误处理(你必须写它,我不知道你想要什么错误)。如果错误代码为0
(一切正常),则为git push
。 2.你可以添加is作为命令行参数,使第二行git pull $1
我认为这与我正在寻找的内容很接近,但不完全是。我希望我的服务器在每次提交后从仓库中提取。每次我想要进行更改时,我都必须执行该脚本。
@Sosa 好吧,那就是它可能会失败的地方,你必须求助于钩子。不幸的是,我对钩子知之甚少......【参考方案2】:
我希望我的服务器在每次提交后从 repo 中提取
这看起来像 webhook:您的服务器会监听 GitHub 发出的拉取事件 (JSON payload)。
你会发现很多监听器的例子,比如 CoffeeScript 中的zenhacks/github-webhook-listener
。
【讨论】:
【参考方案3】:我没有让它自动从 Github 中提取,而是按照本指南在我自己的服务器上创建了一个存储库。 How To Set Up Automatic Deployment with Git with a VPS
这样做是为了让每当我在本地完成我的站点上的工作时,我都会将 repo 推送到我的服务器上。每次服务器获得 repo 更改时,它都会检查到我的网站目录。
我也可以将我的本地计算机设置为同时推送到 Github。非常有用的指南,我推荐它。
【讨论】:
以上是关于Ubuntu 自动从 Github 仓库拉取的主要内容,如果未能解决你的问题,请参考以下文章