git – 如何将A和K之间的提交压缩到一个提交Z中

如果我有这样的提交历史记录:

A-B-C-------G-H-J-K   (master)
     \     /
      D-E-F

如何将A和K之间的提交压缩到一个提交Z:

A-Z-K   (master)

最佳答案 首先,执行:

git rebase -i A

这将在文本编辑器中显示提交列表,以B开头,以K结尾.
您必须将提交C,D,E,F,H和J前面的文本选择更改为s或squash.不要在B或K前面更改选择.请注意,提交G应该丢失,因为它是合并提交.

最后,保存并退出编辑器.这将开始实际的变基.

结果将是这样的:

A-Z-K'                   (master)
 \
  B-C-------G-H-J-K      (no branch)
     \     /
      D-E-F

没有分支的部分最终将被垃圾收集删除.

点赞