git - 我可以让 git 在 checkout 分支时自动更新子模块吗?

标签 git git-submodules git-checkout

我正在处理一个包含一些子模块的 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/

相关文章:

Git::将多模块项目拆分为 2 个模块并保留历史记录

项目根目录的 Git 状态显示子模块更改,但在子模块中没有可用的

从外面git checkout分支

python - git reset --hard HEAD 与 git checkout <file>

git - 如何 stash "pr"远程分支?

Git commit 在我的案例中

Git 错误 : Changes not staged for commit

git - laravel Blade 文件,您的本地更改将被 merge 覆盖

java - 如何查看 Eclipse 内置插件的特定版本

git - 为什么 git checkout 不删除新文件?