1

我已经克隆了一个包含子模块的存储库,并且子模块都已经过 git-inited 和 git-updated。在将更改推送到一个或多个子模块(由另一台机器)后,我运行以下命令:

git submodule foreach git pull origin master

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

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

编辑例如

考虑一下:

  1. 我有一个带有子模块 B 和两台机器 Z 和 Y 的存储库 A
  2. 我将存储库和子模块克隆到 Y 和 Z。
  3. 我在 Y 上更改 B 并将其推回服务器。

现在,我要的是使 Z 保持最新并获得 B 中的最新更改的语法——以这样一种方式,它可以扩展到多个子模块。

4

1 回答 1

1

如果我理解正确,您希望获得所有子模块的所有更改并将它们合并。如果是这样,git submodule update --merge应该可以解决问题。不知道为什么你甚至试图在那里使用 foreach 。

于 2013-02-23T16:25:45.137 回答