在修复提交后git如何处理压缩提交?

时间:2018-05-16 21:49:08

标签: git git-rebase git-squash

我正在使用具有相当多提交的分支,并希望在合并到rebase之前进行交互式master以将其压缩为更少的提交。为了避免奇怪的冲突,我试图在可能的情况下保持对提交的某个顺序,但有时需要在fixup的长字符串中维护提交消息。换句话说,我有类似的东西:

pick abc123 commit A
f jkl567 commit B
f def345 commit C
s mno789 commit D
f xyz901 commit E

来自squash commit的消息是否仍会在第一次选择的提交中保留,或者它会执行类似于将'commit D'压缩到commit C中然后在commit C获取时最终删除提交消息的操作“修正”到commit B然后进入commit A

2 个答案:

答案 0 :(得分:1)

Git是按顺序逐一进行的,所以它会:

  1. 修复B,保持来自A的提交消息
  2. 使用C修复新提交,保持来自A
  3. 的提交消息
  4. 与D壁球,要求编辑来自A + D的信息
  5. 使用E进行修复,以便将保存的版本保存在3中。)

答案 1 :(得分:0)

根据我的经验,在压缩提交完成后,您将获得提交消息的编辑器。默认情况下,编辑器会将所有提交的所有提交消息都压缩。然后,您可以根据需要编辑邮件。

TL; DR 然而,git计算建议的提交消息,您将有机会在最终提交提交之前对其进行编辑。