如何更新git子模块而不检查它

时间:2014-03-31 14:56:49

标签: git git-submodules

我在非常usual way中使用git子模块。人们通常如何更新子模块的方法是检查子模块,拉出子模块中的内容,然后在外面提交。

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

我认为.git中的某个地方有可能我可以修改。

2 个答案:

答案 0 :(得分:1)

你需要进入你的子模块所在的目录,确保检查你想要的分支,并做一个拉动。

因此,如果你的子模块是那个' jedi'我在您链接的repo中看到的目录,您需要执行以下操作。

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

如果要更新超级存储库(包含子模块的存储库),则需要备份到该存储库的根目录并提交子模块的已更改状态。

cd ..
git add jedi
git commit -m 'updating the jedi submodule'

然后你想推高这个提交,与其他人分享。

答案 1 :(得分:1)

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

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

mode的值可以从git ls-files --stage submodule_path

获得

git update-index参考