1

我正在开发一个 GIT 存储库(A在此处调用)。它包括一个子模块(B这里称为)。A克隆by的新副本时

git clone --recursive <repository url for A>

A并被B克隆,但版本B已过时!不管我如何更新它

git submodule update

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

怎么了?我的 git 版本是git version 1.7.7.5 (Apple Git-26),我的存储库是bitbucket.

4

1 回答 1

3

在 A 内部时,cd到 B 所在的目录。

cd path/to/B/inside/A

现在您可以checkout在 A 中进行任何您想要的提交。

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 clone或者git submodule updatecheckout提交。

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

于 2012-09-22T15:08:25.653 回答