在Git中,如何从存储库中提取并获取该存储库中提交的所有子模块变更集';s子模块子回购&x27;s
我正在尝试使用以下拓扑:在Git中,如何从存储库中提取并获取该存储库中提交的所有子模块变更集';s子模块子回购&x27;s,git,Git,我正在尝试使用以下拓扑: parent_repo `-- child_repo 我们正在维护一个我们都从中推拉的中继副本。(我知道星形拓扑结构是不必要的。我意识到,您可以相互提取,而无需通过中央存储库进行反射。) 我在ross\u parent\u repo中,我想从bob\u parent\u repo中获取bob对bob\u parent\u repo中的文件所做的所有编辑,以及他对其子模块bob\u parent\u repo/child\u repo所做的编辑 不幸的是,当我做一个g
parent_repo
`-- child_repo
我们正在维护一个我们都从中推拉的中继副本。(我知道星形拓扑结构是不必要的。我意识到,您可以相互提取,而无需通过中央存储库进行反射。)
我在ross\u parent\u repo
中,我想从bob\u parent\u repo
中获取bob对bob\u parent\u repo
中的文件所做的所有编辑,以及他对其子模块bob\u parent\u repo/child\u repo
所做的编辑
不幸的是,当我做一个git pull时——递归子模块bob\u parent\u repo,它从bob\u parent\u repo
拉入ross\u parent\u repo
,但trunk\u child\u repo
进入ross\u parent\u repo/child\u repo
有没有可能使用一个简单的命令来提取Bob在
Bob\u parent\u repo
中完成的所有变更集,以及他在所有子模块中完成的所有变更集?我是否需要编写脚本并遍历.gitmodules
文件中的子模块?无需打开.gitmodules
;您可以使用git子模块foreach
git pull $BOBS_PARENT_REPO
git submodule foreach 'git pull $BOBS_PARENT_REPO/$path/.git'
(不过,这对子模块的任何子模块都不起作用。)我认为在1.7.5中,您可以使用--recursive执行递归foreach
trunk_parent_repo
`-- child_repo
ross_parent_repo
`-- child_repo
bob_parent_repo
`-- child_repo
joe_parent_repo
`-- child_repo
git pull $BOBS_PARENT_REPO
git submodule foreach 'git pull $BOBS_PARENT_REPO/$path/.git'