git子模块: track corresponding branch in submodule?

标签 git

假设您将一个项目分解为一个 super 项目和一个子模块。它们都有稳定的(主)分支和开发分支。有没有办法设置您的子模块,以便 super 项目从其 dev 分支跟踪子模块的 dev 分支,并从其稳定分支跟踪子模块的稳定分支?

我想象的是 .gitmodules 中的这样的东西:
[submodule "subproject"] path = subproject url = http://www.github.com/nfirvine/subproject branch = $current_branch_name
(我特别关注 Ansible project ,他们的 stable-1.9 分支跟踪其子模块的 devel 分支。这似乎是自找麻烦。)

您可以使用 git 属性来指定 .gitmodules不会自动 merge ,但我想知道是否有比这更聪明的东西。

最佳答案

super 项目中的每个提交都将与子模块中的特定提交相关联。子模块不会自动更新或跟随分支:每次你想要同步时,你需要 cd 到子模块目录,检查你选择的分支,运行 git pull ,然后将结果提交给 super 项目。您可以让 super 项目中的每个分支都指向一个提交,该提交又指向一个适当的子模块提交; git 不会为你这样做。当你 merge 分支时,你需要手动整理那部分。

当然,这一切都假设你没有编写一些很棒的脚本来驯服这种疯狂。

关于git子模块: track corresponding branch in submodule?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30248898/

相关文章:

GIT:删除没有本地跟踪分支的远程分支

linux - 我如何在服务器上添加和同步我的本地 git?什么是裸仓库?

git p4 从裸存储库提交?

git-svn dcommit 失败,原因为 "URL access forbidden for unknown reason"

git - merge 多个 GIT 存储库,同时保留所有标签/分支

git - 如果我在分支 "Foo2"并执行 "git push origin Foo",会发生什么?

git - 如何在跳过特定提交时 rebase ?

java - 如何直接从 Git 生成 javadoc

php - 从 Git 预提交 Hook 上的 STDIN 读取(使用 PHP)

git - 您如何保留不起作用的代码?