我正在处理一个包含一些子模块的 git 存储库,这些子模块在不同的分支上有不同的修订。当我切换分支时,我得到:
M path/to/subrepo
Switched to branch 'another-branch'
消息。然后我手动做:
git submodule update --recursive
然后就消失了。
我尝试在 .git/hooks/post-checkout 中编写一个 git 钩子(Hook):
#!/bin/bash
exec git submodules update --recursive
但这似乎没有做任何事情。我尝试从挂机后行添加一个 exec echo hello - 似乎也不起作用。
我的问题:我可以配置 git 以便默认情况下分支 checkout 本身也会更新子模块吗?
最佳答案
如果您的 git 版本是 2.13 或更高版本,请尝试选项 --recurse-submodules :
git checkout another-branch --recurse-submodules
在某些情况下,您可能还需要添加 -f
。
关于git - 我可以让 git 在 checkout 分支时自动更新子模块吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55631116/