所以我的结构对于回购看起来像这样:
--project - master
--project - beta
--project - dev1.0
--project - dev1.1
--project - dev1.2
目前我做git branch
并且我在dev1.2
这很好,我想添加一个从1.2开始的项目引用,然后将它“合并”一直回到master(或其他)这个问题是according to this book,我觉得我不够理解这个问题。
我可以在dev1.2分支上执行此操作:
git add submodule --link-- name
然后git commit -a -m "some message"
和git checkout dev1.1
然后git cherry-pick #commit where I added the reference project
,最后git submodule udpate
??
这基本上可以说: on dev 1.2添加一个新引用,提交它 - 添加引用 - 切换到1.1,其中没有引用,cherry选择提交添加引用,然后将子模块更新到现在有1.2和1.1的参考 ..
答案 0 :(得分:0)
管理子模块可能会变得非常混乱,速度很快。我建议改用git-repo
。它是由Android开源项目创建的,以满足Android的需求,但它是非常通用的机制,可供任何项目使用。与git子模块相比,它更加通用,并且与gerrit code review
集成得非常好(但这是可选的)。
git-repo允许你同时使用“track by commit sha”模型(相当于git子模块)或“track by branch name”模型(不可能使用git子模块),或者它们的任意组合。
回购只有一个缺点 - 它没有明确支持Windows(但在Linux,Mac和大多数POSIX系统上运行良好)。它无法在Windows上运行的原因是它广泛使用了符号链接,但Windows XP不支持它们。由于Windows 7+支持符号链接,因此应该可以修复git-repo
以在Windows上运行,但不幸的是,没有人愿意这样做。