如何 git 重置 --hard HEAD^ 回购的根而不影响子模块

How to git reset --hard HEAD^ root of repo without affecting submodules

在对包含子模块的存储库的根目录进行临时提交后,我随意地 运行 git reset --hard HEAD^ 打算删除主根目​​录上的所述提交 - 但令我沮丧的是也影响所有子模块回购....

我只是想删除根仓库上的头部提交。

是否有 better/safer 方法可以在不影响子模块回购协议的情况下完成此任务?

git reset 默认值 --no-recurse-submodules (结帐/切换也是如此)。但是,如果您通过将 submodule.recurse 配置为 true1 或以其他方式启用,将递归设置为默认启用,您始终可以传递显式 --no-recurse-submodules 选项来覆盖你的覆盖。您也可以 运行 git -c submodule.recurse=0,如 the git config documentation.

中所述