>我有一个父 git 存储库,里面有 3 个分支。我还使用了一个子模块存储库,它具有 3 个同名的分支,父存储库每个分支中的 .gitattributes 文件指向同名的子模块分支。这一切都很好,但我的问题是,当我在父存储库中执行 git checkout BRANCH 时,我总是必须在之后进行 git 子模块更新,否则子模块目录中的文件将不会更新以反映正确的分支
有没有一种简单的方法来自动化这一点,以便每次我进行结帐时,子模块文件都会更新以反映正确的分支?
git checkout master & git submodule foreach git checkout master
其中master
是所选分支的名称
您可以添加hook
post-checkout
,并在调用git checkout
时自动执行此操作。您需要创建一个文件.git/hooks/post-checkout
如下所示:
branch=$(git rev-parse --symbolic --abbrev-ref $1)
git submodule foreach git checkout $branch
希望这会有所帮助