我已经克隆了一个包含子模块的存储库,并且子模块都已经过 git-inited 和 git-updated。在将更改推送到一个或多个子模块(由另一台机器)后,我运行以下命令:
git submodule foreach git pull origin master
在本地获取最新信息 - 但是当我进入我的子模块并执行操作时,git status
我会收到“当前不在任何分支上”的消息。然后,我必须结合git checkout
并git pull
回到子模块的主分支。
如果我的目标是在我的所有子模块中“从主分支获取最新信息”,那么正确的 foreach 命令是什么?
编辑例如:
考虑一下:
- 我有一个带有子模块 B 和两台机器 Z 和 Y 的存储库 A
- 我将存储库和子模块克隆到 Y 和 Z。
- 我在 Y 上更改 B 并将其推回服务器。
现在,我要的是使 Z 保持最新并获得 B 中的最新更改的语法——以这样一种方式,它可以扩展到多个子模块。