delete - Git-elimina commits con changeset vacío usando filter-branch
git rewrite file history (2)
¿Cómo elimino commits que no tienen ningún conjunto de cambios usando git filter-branch?
Reescribí mi historial de git usando:
git filter-branch --tree-filter ''rm -r -f my_folder'' -f HEAD
esto funcionó bien, pero ahora tengo muchos commits con changesets vacíos. 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 debe eliminarse.
Solo agregue la opción --prune-empty
:
git filter-branch --tree-filter ''rm -rf my_folder'' --prune-empty -f HEAD
(Y por supuesto, si tiene otros refs, puede reescribir todo con -- --all
lugar de solo HEAD
).
Tenga en cuenta que esto no es compatible con --commit-filter
; en ese caso, Charles Bailey tiene su respuesta .
Solo mirando la documentación de filter-branch
, debería poder hacer esto:
git filter-branch --commit-filter ''git_commit_non_empty_tree "$@"'' HEAD