2012-07-16 37 views
0

我有一个添加子模块的项目。事情是,我总是希望这些子模块与当前版本保持同步。我如何总是告诉这些子模块寻找最新的提交并与它们自己同步?如何让脚本更新git子模块?

回答

2

git submodule foreach真的很方便。

git submodule foreach git pull 

这将在所有子模块中执行拉(即取/合并)。

+0

是否会更新子项目提交版本? – Yep 2012-07-16 21:46:41

+0

'git submodule foreach git pull origin master'可能更合适... – Yep 2012-07-16 21:54:38

+1

是的,它主要是我试图解释的foreach函数。 – 2012-07-16 21:55:22

0

子模块,寻找最新的承诺,并与之同步自己是

马库斯·约翰逊的回答解释了如何使子模块获取到最新的为各自的来源(如果你的主要项目是游戏,但它包含一个图形和逻辑库作为子模块,那么图形和逻辑库将是最新的)。

如果你希望你的子模块进行更新,以通过您的主项目(“游戏”在我的例子)使用了最新的,那么你可以使用

git pull --recurse-submodules 

当你更新你的主要项目也更新子模块。此外,您始终可以使用

git submodule update --init 

将您的子模块更新到主项目的版本。

当你的主要项目需要保持同步的库版本(如果更新库改变了他们的API,你只需要更新,如果有人更新了主要项目匹配),这非常有用。请参阅this answer