Aggiornamento: come altri hanno sottolineato, non apportare alcuna ridefinizione o riscrittura della cronologia di alcun tipo se si è passati a un'origine remota e si è condiviso questo codice con altri sviluppatori. Risposta breve: è pericoloso e rischioso!
Si consiglia di verificare il comando rebase per questo. Fa esattamente quello che stai chiedendo
Quello che fa è prendere commit più piccoli e combinarle in quelli più grandi
usarlo:
git rebase -i HEAD~5
tuo editore si aprirà con gli ultimi 5 si impegna dal capo del ramo attuale, con qualche documentazione. Nel tuo caso vorrai usare squash
. Il sito che ho linkato spiega davvero bene, hanno questo esempio:
pick 01d1124 Adding license
squash 6340aaa Moving license into its own file
squash ebfd367 Jekyll has become self-aware.
squash 30e0ccb Changed the tagline in the binary, too.
Questo pacchetto precedenti 3 commit e metterli tutti sotto lo stesso che hai contrassegnato come pick
. È quindi possibile modificare il messaggio di commit e così via.
Buon divertimento
Vedere anche http://stackoverflow.com/questions/2302736/trimming-git-checkins-squashing-git-history/2302947#2302947 per lo schiacciamento commette – VonC
Si potrebbe anche voler considerare l'aggiunta di un hook pre-commit per aiutare rivedere il tuo stile di codifica. Con questo, puoi lamentarti se provi a commettere un codice che viola alcuni standard che hai impostato. Puoi aiutare a prevenire cattivi commit in primo luogo! L'esempio pre-commit hook ('.git/hooks/pre-commit.sample') cerca cose come gli spazi finali dopo le linee. Ad esempio, è possibile avvolgere il rientro GNU in uno script, per applicare uno stile di codifica specifico e inserirlo nel gancio di pre-commit. –