¿Cómo elimino commits que no tienen ningún conjunto de cambios usando git filter-branch?Git - eliminar commits con conjunto de cambios vacío usando filter-branch
me volvió a escribir la historia de mi git usando:
git filter-branch --tree-filter 'rm -r -f my_folder' -f HEAD
Esto funcionó bien, pero ahora tengo un montón de confirmaciones con conjuntos de cambios vacías. Me gustaría eliminar esos commits. Preferiblemente en msysgit.
Rebasar no es realmente una opción porque tengo más de 4000 confirmaciones y la mitad de ellas deben eliminarse.
Para futuros visitantes, '--index-filter' con' git rm -r --ignore-unmatch --cached my_folder' es mucho más rápido que '--tree-filter' ya que no tiene que ver cada revisión. Opera completamente en el índice. – vmrob
Y en caso de que ya hayas hecho el trabajo ('--tree-filter ...') y ahora solo quieras deshacerte de las confirmaciones vacías persistentes, esto salvó mi tocino: 'git filter-branch --prune-empty' (solo el comando 'filter-branch' * sin * ningún 'filtro') - como se encuentra en http://stackoverflow.com/questions/28313664/remove-empty-commits-in-git#28313729 - esto es útil cuando la respuesta de Jefromi a continuación (http://stackoverflow.com/questions/5324799/git-remove-commits-with-empty-changeset-using-filter-branch#5326065) produce el informe de error 'Found nothing to rewrite' –