【问题标题】:Auto pull from GitHub repository on remote DigitalOcean server after push from local machine?从本地机器推送后从远程 DigitalOcean 服务器上的 GitHub 存储库自动拉取?
【发布时间】:2018-10-13 18:48:06
【问题描述】:

我有一个项目,我从本地计算机推送到 GitHub 存储库。我将这个项目部署在一个 DigitalOcean droplet 上,我目前必须 ssh 进入并执行 git pull,然后手动重新部署。有没有一种简单的方法让它自动拉,然后自动构建和重新部署自己?我研究了 git hooks 但找不到任何关于我想要做什么的明确答案。我在远程机器上设置了一个更新后的 git 挂钩,它只是回显一行,但我不知道在哪里检查该行是否回显成功。

【问题讨论】:

    标签: git automation cloud digital-ocean githooks


    【解决方案1】:

    您需要运行 Git 挂钩的位置是在服务器端,在 post-receivepost-update 挂钩中。但是,GitHub 默认不允许您运行任意挂钩,因为这会带来安全风险。相反,您可以使用GitHub's webhooks 来触发您的 Droplet,通过向其发出 POST 请求来执行某些操作。

    您还可以设置某种持续集成,自动触发构建并将构建部署到您的 Droplet。这通常是此类任务的管理方式。

    最后,您可以设置一个包含多个remote.foo.url 条目的远程名称(例如foo),其中一个是GitHub,其中一个是您的Droplet。然后,您可以使用该遥控器同时推送到两者,在这种情况下,您的 post-receivepost-update 挂钩将在液滴上触发(因为它收到了推送)。如果有结帐,您可以使用receive.denyCurrentBranch=updateInstead,它可以让您推送到已签出的同一分支。详情请见git-config(1)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-01
      • 2021-04-18
      • 2023-03-19
      • 1970-01-01
      • 2022-06-11
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多