首页 > 解决方案 > 如何使父 repo 分支指向子模块 repo 分支

问题描述

父 repo - 一个单独的分支子模块 repo - 一个单独的分支

在 Bitbucket 中,每次我将提交推送到子模块时,我都需要将父 repo 更新为子模块中的最新提交。

这是因为当我使用子模块时,我的父分支指向一个提交,现在我的问题是我们可以将父分支指向子模块分支而不是提交。

目前,我的父仓库中的 .gitmodule 文件如下所示

[submodule “arch/modules”]
    path = arch/modules
    url = https://bitbucket.xxx.xxxx/scm/archdev/modules.git
    branch = arch/module-test

即使我将它指向一个分支,为什么它仍然指的是一个提交?有没有办法让父 repo 分支指向子模块 repo 分支。

有人可以解决这个问题吗

提前致谢

标签: gitbranchgit-submodulesgit-commit

解决方案


没有。你不明白 git submodule 是什么。

Git 子模块是一种将另一个项目包含到当前项目中的方法。该项目必须在每个项目的提交中包含子模块的特定状态。这是通过引用子模块的特定提交来完成的。

在 git 命令中执行,相当于

  1. git clone url://submodule path/to/sub, 和
  2. cd path/to submodule
  3. git checkout submodule-commitid

这会导致子模块的 HEAD 与分支分离。

为什么我的 Git 子模块 HEAD 与主模块分离?


推荐阅读