Код: Выделить всё
$ git whatchanged --graph --decorate | egrep -v '(Author|Date):'
* commit c49c23f8f539f5d20d4a64f0348c8d47301a75d7 (refs/heads/master)
|
| a1
:000000 100644 0000000... d00491f... A a
|
* commit 91bbabf33637a09f5de91cd068ca11c50dcc17df
|
| b2
:100644 100644 d00491f... 0cfbf08... M b
|
* commit 65cbc005f451c58c5a7a1fe3926c3712764d0519
b1
:000000 100644 0000000... d00491f... A b
Можно ли полностью удалить коммиты с конкретным файлом (b в примере): так, как будто они вообще никогда не были сделаны, а файла этого никогда не существовало? В реальной жизни там может быть не один файл, а, скажем, каталог; суть в том, что затрагивающие его коммиты ничего другого не касаются.
filter-branch --treefilter 'rm -f b' содержимое файла из коммитов удаляет, но записи о коммитах в логе остаются. Очень не хотелось бы, чтобы эти совершенно пустые коммиты там болтались.