如何在不丢失子模块的情况下压缩所有提交?

How do I squash all commits without losing submodules?

我喜欢 How to squash all git commits into one? 的回答。

但是,如果我:

,我会遇到合并冲突:
git rebase --root -i

按照建议进行采摘和挤压。

而且,当我

时,我失去了我的子模块(我有 5 个)
rm -rf .git
git init
git add .

压缩所有历史记录并将我的子模块保留在当前目录中的当前 sha 的最有效方法是什么。

尝试 git reset --soft SHAOFFIRSTCOMMIT 然后 git commit --amend

第一个命令将当前分支重置为第一次提交,但保留当前索引,第二个命令在上次提交中提交当前索引。