gpt4 book ai didi

git - 当 GitHub 上的 master 分支更新时,刷新 ubuntu 服务器上的 repo。我怎样才能做到这一点?

转载 作者:行者123 更新时间:2023-12-02 19:25:38 25 4
gpt4 key购买 nike

所以我正在运行 docker 容器 在 ubuntu 服务器上。我启用了绑定(bind)挂载,所以当服务器上的文件发生变化时,运行容器中的文件也会发生变化,这很酷!

我已经将 GitHub 上的 repo 克隆到了我的 ubuntu 服务器上。

但现在我想要一个更好的开发工作流程。

每次我将另一个分支与我的主分支 merge 或直接编辑主分支时,我都会将我的代码推送到 GitHub。

然后,我通过 SSH 连接到我的 ubuntu 服务器并转到 repo,然后通过一个简单的“git pull”我在 GitHub 上收集我的主分支的更新版本。一切都在服务器上更新。

But what I want, is that the repo on the server listens for changes on the repo (master) on GitHub. When the master branch on GitHub changes, I want the server to update (or better said, pull the master branch from GitHub).



我怎样才能实现这样的结构?如果无法监听,我应该推送到两个 git 存储库(GitHub 和服务器)吗?由于服务器上的 repo 是克隆,这甚至可能吗?如果是这样,我该怎么做。

我感谢所有的帮助。

最佳答案

GitHub 提供了 webhook,可用于在某些事件发生时(例如推送)获取对给定端点的 HTTP POST 请求。您可以在 GitHub webhook documentation 上阅读更多相关信息。 .然后,您可以创建一个作业,当它收到通知时,会执行以下操作:

git fetch origin
git reset --hard origin/master # works better than pull if you force-push
git submodule update --init # only if you have submodules

但是,这确实需要您有一个服务来监听 webhook 请求并进行检查。如果您不想这样做,您可以简单地推送到远程服务器。您需要设置 receive.denyCurrentBranchupdateInstead在服务器端,这将确保即使分支已经 checkout ,也会发生 checkout 。

关于git - 当 GitHub 上的 master 分支更新时,刷新 ubuntu 服务器上的 repo。我怎样才能做到这一点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56465299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com