1

我正在使用具有大量提交的分支,并希望rebase在合并到master. 为了避免奇怪的冲突,我试图在可能的情况下对提交保持一定的顺序,但有时需要在长字符串中维护提交消息fixup。换句话说,我有类似的东西:

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

来自 squash 提交的消息是否仍会保留在第一个选择的提交中,或者它是否会执行类似 squash 'commit D' into 的操作,然后在“修复”到然后再进入commit C时最终丢弃提交消息?commit Ccommit Bcommit A

4

2 回答 2

2

Git 是按顺序执行的,所以它会:

  1. 修复 B,保留来自 A 的提交消息
  2. 用 C 修复新的提交,保留来自 A 的提交消息
  3. Squash with D,要求编辑来自 A+D 的消息
  4. 使用 E 进行修复,因此保留您在 3 中保存的版本。)
于 2018-05-16T22:04:04.827 回答
0

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

TL;DR然而 git 计算一个建议的提交消息,你将有机会在提交最终提交之前编辑它。

于 2018-05-16T21:54:44.997 回答