当我们使用交互式变基时,原始提交会发生什么?

var*_*ble 4 git git-interactive-rebase

我正在尝试交互式变基。假设我有一个有 6 次提交的线性主分支,并且 HEAD 位于第 6 次提交,并且我运行 git rebase -i HEAD~4 那么它允许我选择/编辑/拆分/压缩 HEAD 和最后 3 次提交。

一旦我执行任何操作并完成变基操作,它就会重播 HEAD~4 之上的提交。现在,它们有了新的提交 ID,并且头指向最近(选择的)提交。

我想知道原始提交到底发生了什么?是否被删除,是否可以恢复?

Rom*_*eri 5

当分支或标签不再引用提交时,它通常仍然位于 reflog

但是,当即使 reflog 被清除并且提交根本没有被引用时,它就会成为垃圾收集的候选对象,并最终被删除,具体取决于您的gc 配置

  • 需要注意的是,这几乎不会立即发生。在实践中,提交是相当可用的,并且持续很长时间。 (2认同)