我正在开发一个 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.
我正在开发一个 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.
在 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 update将checkout提交。
请注意,B 独立于 A,因此 B 在分支方面可以具有任何状态,但作为 A 的子模块,它将指向 A 想要的提交。这允许独立开发两个存储库。