【问题标题】:git - push to gitlab from local git servergit - 从本地 git 服务器推送到 gitlab
【发布时间】:2018-07-15 16:43:57
【问题描述】:

我有一个本地 git 服务器,我在其中托管带有博客软件 (hexo) 的 docker 容器的文件。 推送到本地git服务器后,我想自动将博客推送到gitlab。

这是我推送到本地 git 服务器的目录:

hexo                    << to remote
 - scaffolds            << to remote
 - source               << to remote
 - themes               << to remote
 - _config.yml          << to remote
 - package.json         << to remote
 - README.md            << to remote
docker-compose.yml
Dockerfile
README.md

目录 hexo 包含博客。 以&lt;&lt;to remote 结尾的行也是我想推送到 gitlab 的。

这是否可能使用 git webhooks,例如在我的本地 git 服务器上使用 post-recieve 挂钩?如果是这样,怎么做?我找不到关于它的好教程。 我只想将文件夹 hexo 及其内容推送到 gitlab,而不是整个存储库。

提前致谢。

【问题讨论】:

    标签: git docker gitlab webhooks hexo


    【解决方案1】:

    git webhooks,例如在我的本地 git 服务器上使用 post-receive 挂钩?

    不完全是:一个 git webhook 不是一个 post-receive 钩子。

    • Webhook 是一个 http 侦听器,它侦听由 GitLab 等远程托管服务发送的事件(通常是推送事件)。
    • post-receive hook is a server-side hook,由 git push 触发到那个同一个服务器。

    在您的情况下,您需要一个 post-receive 钩子,前提是您可以控制要推送到的 Git 服务器。
    在您的服务器中,创建一个可执行文件 /path/to/repo.git/hooks/post-receive 并在其中对 gitlab 执行 git push

    【讨论】:

    • 感谢您的评论。我可以控制本地 git 服务器。我是否必须通过 ssh 进入我的 git 服务器并将 post-recieve 钩子放在那里(data/git/repositories/jsus/hexo-docker.git/hooks/)或者我也可以将它放在我电脑上的 hexo-docker 存储库中我最初从哪里推动?
    • 你需要 ssh 到服务器:永远不会推送钩子。
    • 再次感谢 VonC!我现在有一个接收后挂钩,每次我推送到本地 git 服务器时都会触发它。但是身份验证存在问题,我应该如何处理?理想情况下,我想使用 ssh 密钥。我可以使用用户的 ssh 密钥推送到本地 git 服务器(因为他也可以使用 gitlab 存储库进行身份验证)?
    • @jsus 最好不要重用另一个用户的现有 ssh 密钥,因为这意味着复制 private 密钥...因此将不再是私有的。在服务器上运行 Git 的用户帐户中生成一个。并将新的公钥复制到 GitLab 远程用户账户 SSH 设置页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 2014-02-02
    相关资源
    最近更新 更多