Ho avuto un problema simile che ho risolto come segue:
Questo è il gruppo di commit che volevo eliminare:
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
Come puoi vedere, volevo no. 4, ma 1, 2 e 3 non avevano alcun commit precedente in cui schiacciarsi . Quindi il Impossibile 'squash' senza un precedente errore di commit .
La mia soluzione era utilizzare l' r
opzione per# r, reword = use commit, but edit the commit message
Quindi il mio elenco di commit assomigliava a questo:
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
Dopo il salvataggio, la shell interattiva mi ha chiesto di riformulare il commit scelto.
Successivamente, il mio registro di commit ha prodotto un singolo commit che ha portato a una cronologia di commit più pulita.