我有一个包含3个分支的父git repo。我还使用子模块repo,它有3个具有相同名称的分支,并且父repo的每个分支中的.gitattributes文件指向同名的子模块分支。这一切都很好,但我的问题是,当我在父仓库中执行git checkout BRANCH时,我总是必须在之后执行git子模块更新,否则子模块目录中的文件将不会更新以反映正确的分支
是否有一种简单的方法可以自动执行此操作,以便每次结帐时子模块文件都会更新以反映正确的分支?
答案 0 :(得分:1)
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
希望这会有所帮助