Jak usunąć zatwierdzenia, które nie mają zestawu zmian za pomocą filtru Git?Git - usuwa zatwierdzenia z pustym zestawem zmian za pomocą gałęzi filtru
przepisał mi moją historię git przy użyciu:
git filter-branch --tree-filter 'rm -r -f my_folder' -f HEAD
to działało dobrze, ale teraz mam dużo zatwierdzeń z pustymi Zestawienia zmian. Chciałbym usunąć te zatwierdzenia. Najlepiej w msysgit.
Przekazywanie nie jest tak naprawdę opcją, ponieważ mam ponad 4000 zatwierdzeń, a połowa z nich musi zostać usunięta.
Dla przyszłych odwiedzających, '--index-filter' z' git rm -r --ignore-unmatch --cached my_folder' jest znacznie szybszy niż '--tree-filter', ponieważ nie musi go sprawdzać każda zmiana. Działa całkowicie na indeksie. – vmrob
A jeśli już wykonałeś pracę ('--tree-filter ...'), a teraz po prostu chcesz pozbyć się zalegających pustych commitów, to uratowałeś mój bekon: 'git filter-branch --prune-empty' (tylko polecenie 'filter-branch' bez * żadnego 'filtra') - jak w http://stackoverflow.com/questions/28313664/remove-empty-commits-in-git#28313729 - jest to użyteczne kiedy odpowiedź Jefromi poniżej (http://stackoverflow.com/questions/5324799/git-remove-commits-with-empty-changeset-using-filter-branch#5326065) generuje raport o błędzie "Nie znaleziono nic do przepisania" –