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 仓库拉取的主要内容,如果未能解决你的问题,请参考以下文章

IDEA从GitHub仓库拉取代码

jenkins学习5-jenkins拉取git仓库代码,执行python自动化脚本

git怎么从远程仓库拉取到本地

[git]-本地创建仓库并推送GitHub服务器

git 本地仓库同时推送到多个远程仓库

持续集成 - 基于gitee的jenkins配置(从gitee拉取代码并运行)