Git Submodule Foreach Pull的语法?

时间:2013-02-23 14:29:57

标签: git

我已经克隆了一个包含子模块的存储库,子模块已全部被git-inited和git更新。将更改推送到一个或多个子模块(由另一台机器)后,我运行此命令:

git submodule foreach git pull origin master

在本地获取最新版本 - 但是当我进入我的子模块并执行git status时,我收到“当前不在任何分支上”的消息。然后我必须组合git checkoutgit pull以重新回到子模块的主分支。

如果我的目标是在所有子模块中执行“从主分支获取最新信息”,那么正确的foreach命令是什么?

编辑示例

考虑一下:

  1. 我有一个带有子模块B的存储库A和两台机器,Z和Y
  2. 我将存储库和子模块克隆到Y和Z上。
  3. 我在Y上更改B并将其推回服务器。
  4. 现在,我要求的是使Z更新并获得B中最新更改的语法 - 以这种方式可以扩展多个子模块。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你想要对所有子模块进行所有更改并合并它们。如果是这样的话git submodule update --merge应该这样做。不知道为什么你甚至试图在那里使用foreach。