Git得到旧的子模块

时间:2012-09-22 14:36:20

标签: git git-submodules

我正在开发一个GIT存储库(此处称为A)。它包括一个子模块(这里称为B)。通过

克隆A的新副本时
git clone --recursive <repository url for A>
克隆了

AB,但B的版本已过时!无论我如何通过

更新它
git submodule update

当我只克隆B时,它是最新的。

有什么问题?我的git版本是git version 1.7.7.5 (Apple Git-26),我的存储库位于bitbucket

1 个答案:

答案 0 :(得分:3)

在A中,cd到dir,其中B是。

cd path/to/B/inside/A

现在,您可以在{。

checkout进行任何提交
git checkout <branch or commit>

(您可能需要fetch / pull checkout之前的最新更改。)

现在回到A的根目录,并提交更改。

cd -
git add path/to/B/inside/A
git commit -m "Update submodule B pointer."

从现在开始,git clonegit submodule update将提交checkout

请注意,B独立于A,因此B可以在分支方面具有任何状态,但作为A的子模块,它将指向A想要的提交。这允许独立开发两个回购。