我已经克隆了一个包含子模块的存储库,子模块已全部被git-inited和git更新。将更改推送到一个或多个子模块(由另一台机器)后,我运行此命令:
git submodule foreach git pull origin master
在本地获取最新版本 - 但是当我进入我的子模块并执行git status
时,我收到“当前不在任何分支上”的消息。然后我必须组合git checkout
和git pull
以重新回到子模块的主分支。
如果我的目标是在所有子模块中执行“从主分支获取最新信息”,那么正确的foreach命令是什么?
编辑示例:
考虑一下:
现在,我要求的是使Z更新并获得B中最新更改的语法 - 以这种方式可以扩展多个子模块。
答案 0 :(得分:1)
如果我理解正确,你想要对所有子模块进行所有更改并合并它们。如果是这样的话git submodule update --merge
应该这样做。不知道为什么你甚至试图在那里使用foreach。