我在非常usual way中使用git子模块。人们通常如何更新子模块的方法是检查子模块,拉出子模块中的内容,然后在外面提交。
现在,我通常不会在同一个地方开发这些模块。对我来说,在不同的地方开发这两个模块更为舒适。我如何告诉我的git项目一个子模块已经改变,现在处于提交XYZ?
我认为.git
中的某个地方有可能我可以修改。
答案 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