git:如何检出特定子模块上的特定(最新)版本(使用git子模块...)

时间:2018-06-27 08:00:05

标签: git git-submodules

所以我有一个带有一堆子模块的仓库。我只想更新其中之一,但是我想更新到最新的提交,我知道它位于名为origin / mybranch的分支的尖端。我要更新的子模块是mysubmodule(例如)

首先,我尝试了这一点:

git submodule update --remote -- mysubmodule 

这有点麻烦,因为它似乎签出了最新的origin / master分支(它已经很老了)。

所以我阅读了一些git文档,这似乎是默认行为-足够公平!

但是如何检出具有分支原点/ mybranch的远程提交?

我尝试过类似的事情:

git submodule update --remote --checkout mybranch -- mysubmodule 
git submodule update --remote --checkout origin/mybranch -- mysubmodule 

但是我还没有弄清楚:(

1 个答案:

答案 0 :(得分:0)

您可以为子模块设置getfield(s,result{:}) 选项,以便跟踪要更新的子模块分支。这意味着branch文件中发生了更改。

.gitmodules

例如

git config -f .gitmodules submodule.<path>.branch <branch>

设置完毕后,下次运行git config -f .gitmodules submodule.mysubmodule.branch mybranch 时,git子模块将检出分支指向的提交(分支上的最新提交)。

可以在添加子模块时进行设置:

git submodule update --remote...