我有一个开发和主分支的git回购。现在我正试图在每个分支中使用不同版本的子模块。因此,例如,我这样做:如何为每个本地分支使用特定的Git子模块修订版本?
git checkout master
cd submodule
git checkout v1.0
cd ..
git commit -a -m "now using submodule v1.0"
git checkout dev
cd submodule
git checkout v2.0
cd ..
git commit -a -m "let's try submodule v2.0"
现在在那之后我结帐的主分支,它似乎在主分支子模块也指向V2.0犯下的,而不是V1.0。
我读过很多关于git子模块的内容,但它对我来说似乎仍然有点抽象。任何人都可以解释在这种特殊情况下如何正确使用子模块? (git version 1.7.3.1)
谢谢!
'git commit -a'是否确实修复了子模块引用?我们放弃了git 1.5天后的子模块(因为我们想要的东西相当不同),所以我从来没有对它们使用'commit -a'。首先必须小心'git添加子模块'。 – torek 2012-03-29 21:43:49
@torek谢谢你的回复!不幸的是,这并没有解决问题。此外,我尝试在子模块中创建一个新的分支(例如:master和'git checkout -b branch-2.0 v2.0'上的'git checkout -b branch-1.0 v1.0'),但这两者都不起作用。看起来子模块不应该这样使用,那么在这种情况下会有什么替代方案呢? – 2012-03-30 13:12:04
之后我做了一点小小的阅读;从1.5开始,子模块支持看起来已经发展了很多,而且现在发展得更加迅速。所以,有些东西取决于你的确切版本的git。在现有的答案中,虽然主要问题是(缺少)子模块更新。 – torek 2012-03-30 19:04:48