git仅签出和更新不同的子模块

git仅签出和更新不同的子模块,git,github,version-control,Git,Github,Version Control,我正在使用git—一个具有子模块的存储库。 如何签出到以前的提交并更新子模块(仅那些需要回滚更新的子模块)?这样做的目的是节省git子模块更新--init--recursive的时间 不回答问题的特定部分,即更新上次提交时未更新的子模块,以及不更新上次提交时更新的子模块git子模块更新--init--recursive克隆了所有子模块,但这不是预期的结果。在我看来,您在这里似乎不能节省很多时间,对已签出提交的子模块更新对我来说非常快,没有任何操作,但您可以尝试 git checkout olde

我正在使用git—一个具有子模块的存储库。 如何签出到以前的提交并更新子模块(仅那些需要回滚更新的子模块)?这样做的目的是节省git子模块更新--init--recursive的时间


不回答问题的特定部分,即更新上次提交时未更新的子模块,以及不更新上次提交时更新的子模块
git子模块更新--init--recursive
克隆了所有子模块,但这不是预期的结果。

在我看来,您在这里似乎不能节省很多时间,对已签出提交的子模块更新对我来说非常快,没有任何操作,但您可以尝试

git checkout oldercommit

git submodule foreach -q '
        now=`git -C $toplevel rev-parse :$sm_path`
        test $now = `git rev-parse @` || git checkout $now
    '

运行速度明显加快。

可能重复的Don't use
--init
,这是告诉它进行克隆的部分。@TimHenigan我更新了我的问题。我在你的链接中找不到答案