【问题标题】:Is there any automatic way to update the parent git repo to point to the latest commit of its submodule?是否有任何自动方法来更新父 git repo 以指向其子模块的最新提交?
【发布时间】:2021-08-21 15:11:38
【问题描述】:

每次我将提交推送到子模块时,我都需要将父 repo 更新为子模块中的最新提交。有没有自动的方法在遥控器中做到这一点?

每次在子模块存储库中推送提交时,我希望父级自动指向子存储库的最新提交。请建议是否可能以及如何?

【问题讨论】:

    标签: gitlab git-submodules


    【解决方案1】:

    在子模块中使用 gitlab-ci,当子模块主分支的合并请求完成时,我能够触发父级自动更新父级中的主分支。

    stages:
      - build
    
    build_job_dev:
      stage: build
      variables:
        PLUGIN_NAME: coppercrm  
      trigger:
        project: Plugins/parent
        branch: development
      only: 
        - master

    我希望这可以帮助那些正在寻找子模块更新时更新父仓库的人

    【讨论】:

    • 使用管道的有趣方法。赞成。一个很好的替代我自己的答案。
    • 如果我理解正确,这只会触发父母回购管道。您如何更新(也可能提交)父级中的子模块?
    【解决方案2】:

    如果您可以控制 GitLab 服务器,则可以考虑将post-receive 挂钩(custom hook)与远程子模块存储库关联,这将:

    • 转到已签出的父存储库
    • 执行git submodule update --remote:这会将所有子模块更新为最新的master(默认)提交。
    • 添加、提交和推送

    但是如果是 gitlab.com,流程就比较复杂,会涉及到webhook
    这意味着您必须实现/安装一个侦听器,只要触发到远程子模块存储库的推送事件,该侦听器就会执行相同的操作。

    【讨论】:

      猜你喜欢
      • 2021-10-27
      • 2021-09-21
      • 2011-08-15
      • 2021-10-15
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      相关资源
      最近更新 更多