使用 git rebase,如何将提交压缩为非先前提交

Using git rebase, how to squash a commit into a non-previous commit

我知道使用 git rebase -i,我可以压缩一个提交,这会将提交消息合并到紧邻的前一个提交中。

https://github.com/wprig/wprig/wiki/How-to-squash-commits

但是使用 git rebase -i,是否可以将提交压缩为不是上一个提交而是更早的提交?可以说我想在提交被压缩之前使用 3 次提交来压缩提交。如果是,那又如何?

当您使用 git rebase -i 时,如果您想要一个新的顺序,您可以重新排序提交。

如果你做 git rebase -i HEAD~5 并以此结束:

  pick bfddbf6 first  commit
  pick 74b19b1 second commit
  pick 03892e7 third  commit
> pick 0fdc12c fourth commit
  pick 9e422a0 fifth  commit

您可以将第五次提交重新排序为第二次提交,以将其压缩到第一次提交中:

  pick bfddbf6 first  commit
> squash 0fdc12c fourth commit
  pick 74b19b1 second commit
  pick 03892e7 third  commit
  pick 9e422a0 fifth  commit