Come rimuovere i commit che non hanno alcun changeset che utilizza git filter-branch?Git - rimuovi commit con changeset vuoto utilizzando il ramo filtro
ho riscritto la mia storia git utilizzando:
git filter-branch --tree-filter 'rm -r -f my_folder' -f HEAD
questo ha funzionato bene, ma ora ho un sacco di commit con gruppi di modifiche vuote. Vorrei rimuovere quei commit. Preferibilmente in msysgit.
Il rebasing non è davvero un'opzione perché ho più di 4000 commit e metà di essi devono essere rimossi.
Per i visitatori futuri, '--index-filter' con' git rm -r --ignore-unmatch --cached my_folder' è molto più veloce di '--tree-filter' dato che non deve essere estratto ogni revisione. Funziona interamente sull'indice. – vmrob
E nel caso in cui avete già fatto il lavoro ('--tree-filtro ...') e ora vuole solo sbarazzarsi dei persistenti commit vuote, questo mi ha salvato la pancetta: 'git filter-branch --prune-empty' (solo il 'comando * Filtro-branch' senza alcun * 'filtro') - come si trova in http://stackoverflow.com/questions/28313664/remove-empty-commits-in-git#28313729 - questo è utile quando la risposta di Jefromi qui sotto (http://stackoverflow.com/questions/5324799/git-remove-commits-with-empty-changeset-using-filter-branch#5326065) produce il rapporto di errore 'Trovato nulla da riscrivere' –