У мене була подібна проблема, яку я вирішив наступним чином:
Це група комітів, яку я хотів розчавити:
1 s 01cc5a08 Removes open div
2 s a2b6eecf Restores old fonts
3 s 603479ff Cleans left out div
4 pick 5afdbc33 Update: show logo on landing page
5 s 04c1cb13 change version of dev and prod from 1 to 2
6 s bbe6a8f8 Update: show logo on landing page if they have one
7 s c0d6008a Adds check for C users
Як бачите, я хотів ні. 4, але 1, 2 і 3 не мали жодного попереднього комітету, щоб втиснутись . Звідси Cannot 'squash' без попередньої помилки коміту .
Моє рішення було використовувати r
опцію для# r, reword = use commit, but edit the commit message
Тож мій список комітів виглядав так:
1 r 01cc5a08 Removes open div
2 s a2b6eecf Restores old fonts
3 s 603479ff Cleans left out div
4 s 5afdbc33 Update: show logo on landing page
5 s 04c1cb13 change version of dev and prod from 1 to 2
6 s bbe6a8f8 Update: show logo on landing page if they have one
7 s c0d6008a Adds check for C users
Після збереження інтерактивна оболонка попросила мене переформулювати обраний коміт.
Після цього мій журнал комітів привів до одного коміту, що призвів до більш чистої історії комітів.