我正在处理一个包含子模块的git仓库,不同分支上的子模块版本可能不同。当我切换分支时,会出现以下提示:
M path/to/subrepo
Switched to branch 'another-branch'
信息。然后我手动执行:
git submodule update --recursive
但那就消失了。
我尝试编写一个 git 钩子,放置于 .git/hooks/post-checkout:
#!/bin/bash
exec git submodules update --recursive
但似乎这并没有做任何事情。我尝试添加一个exec echo hello from post-hook
的命令行——效果看起来也不好。
我的问题是:是否可以配置git,以便分支检出本身默认也会更新子模块?
git config advice.ignoredHook true
。它会在钩子未被执行时发出警告,因此您将不会再次遇到这个问题(至少在这个仓库中)。 - Calebgit
。如果您这样做了,它应该会默认开启。 - Caleb