如何在不签出git子模块的情况下更新它

如何在不签出git子模块的情况下更新它,git,git-submodules,Git,Git Submodules,我使用的git子模块非常简单。人们通常更新子模块的方式是将其签出,在子模块中提取某些内容,然后在外部提交 现在,我通常不会在同一个地方开发这些模块。对我来说,在不同的地方开发这两个模块更舒服。我如何告诉我的git项目一个子模块已经更改,现在处于提交XYZ状态 我认为,.git中可能有一个我可以修改的设置。您需要进入子模块所在的目录,确保签出您想要的分支,然后执行拉操作 因此,如果你的子模块是我在你链接的repo中看到的“绝地”目录,你需要执行以下操作 cd jedi git checkout &

我使用的git子模块非常简单。人们通常更新子模块的方式是将其签出,在子模块中提取某些内容,然后在外部提交

现在,我通常不会在同一个地方开发这些模块。对我来说,在不同的地方开发这两个模块更舒服。我如何告诉我的git项目一个子模块已经更改,现在处于提交XYZ状态


我认为,
.git
中可能有一个我可以修改的设置。

您需要进入子模块所在的目录,确保签出您想要的分支,然后执行拉操作

因此,如果你的子模块是我在你链接的repo中看到的“绝地”目录,你需要执行以下操作

cd jedi
git checkout <desired_branch>
git pull origin <desired_branch>

然后,您可能希望将此提交推高,以便与其他人共享。

您可以这样做,如下所示:

git update-index --add --cacheinfo  mode,sha1,submodule_path

模式
值可以从
git ls文件——stage子模块路径


参考资料

我知道。但我真的很想不用检查就做。->见标题。由于通常您可以手动更改,它可能位于
.git
目录中的某个位置。您必须在子模块内签出master的原因是,默认情况下,从超级存储库更新子模块会使该子模块处于所谓的“无头状态”。那么,您是否正在试图找出如何阻止
git子模块更新
使您的子模块处于无头状态?
git update-index --add --cacheinfo  mode,sha1,submodule_path