0

我有一个父分支,其中有3个分支。我还使用了一个子模块repo,它具有3个具有相同名称的分支,并且父repo的每个分支中的.gitattributes文件指向相同名称的子模块分支。这一切都很好,但我的问题是,当我在父回购中执行git checkout BRANCH时,我总是必须在执行git子模块更新之后,或者子模块目录中的文件不会更新以反映正确的分支使用子模块时的Git结帐

是否有一种简单的方法来自动执行此操作,以便每次执行结帐时都会更新子模块文件以反映正确的分支?

回答

1
git checkout master & git submodule foreach git checkout master 

哪里master是您选择的分支

的名称可以添加hookpost-checkout,每当你自动调用git checkout做这个动作。你需要创建一个文件.git/hooks/post-checkout这将是这样的:

branch=$(git rev-parse --symbolic --abbrev-ref $1) 
git submodule foreach git checkout $branch 

希望这将有助于

+0

好吧,我可以别名此的方式,任谁克隆回购其他开发者将有机会获得别名吗?因为我和他一起工作的人在每次结账时都不会记得这样做 –

+0

我已经通过git hooks更新了我的答案。如果有帮助,请记住标记答案为解决:) –

+0

谢谢,这是有道理的 –