什么会导致 git 提交消失?

What can cause git commit to disappear?

使用 git,我知道变基将重新创建正在变基的提交,从而为每个提交创建全新的 sha 值。

变基是破坏现有 sha 值的唯一方法吗?

还有很多方法,这里就不一一介绍了。

  • checkout / revert /reflog / reset
    在这里阅读所有内容:

  • git filter-branch
    此命令会更改您的历史记录并允许您删除提交。

  • git rebase / git rebase -i HEAD~x
    在这里你可以将几个提交压缩成一个新的提交

  • BFG Repo-Cleaner 删除大的或麻烦的斑点,如 git-filter-branch会,但会更快。

BFG Repo-Cleaner