git子模块和分支

时间:2013-09-16 20:33:53

标签: git version-control git-submodules

所以我的结构对于回购看起来像这样:

   --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的参考 ..

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上运行,但不幸的是,没有人愿意这样做。