我的主 git 存储库中有一个 git 子模块。据我了解,主存储库存储一个 SHA 值(某处...),指向它“链接到”的子模块的特定提交。
我进入我的子模块并输入git checkout some_other_branch
。我不知道我来自哪个提交。
我想恢复该指针,以便主存储库和子模块再次同步。
我的第一个(可能是天真的)本能是说git reset --hard
- 这似乎适用于其他一切。令我惊讶的是,它不适用于这种情况。
所以我发现我可以输入git diff
,记下子模块指针曾经具有的 SHA ID,然后进入子模块并git checkout [SHA ID]
...但肯定有更简单的方法吗?
由于我仍在学习 git 子模块,如果有我不知道的概念单词,请随时纠正我的术语。
您想要更新子模块,使其与父存储库认为应该的内容同步。这就是更新命令的用途:
从子模块手册页:
Update the registered submodules, i.e. clone missing submodules and
checkout the commit specified in the index of the containing
repository. This will make the submodules HEAD be detached unless
--rebase or --merge is specified or the key submodule.$name.update
is set to rebase or merge.
运行这个,一切都应该很好:
git submodule update --init
您可以添加--recursive
标记以及递归所有子模块。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)