К сожалению, некоторое время назад мы случайно проверили большой двоичный файл, и до сегодняшнего дня никто этого не заметил. Теперь я хочу отказаться от этой фиксации и оставить оставшуюся историю такой, какая она есть. Я знаю о предостережениях при изменении проталкиваемой истории, но в данном случае я не могу этого избежать.
Я пытался достичь этого в течение ~ 1 часа, но не смог. Лучшая команда, которую я нашел, - это
git rebase --interactive --preserve-merges $(EVIL_COMMIT)^
, и в редакторе комментируется 1-й коммит, который является злым.
К сожалению, git rebase
останавливается при слиянии и предлагает ручное разрешение конфликтов слияния. Злой коммит только добавляет некоторые файлы примеров, которые наше программное обеспечение должно вычислить в целях тестирования. Таким образом, они не должны конфликтовать с просто отсутствующими файлами примеров.
Я провел довольно много времени в поиске Google и SO. Некоторые потоки охватывают схожую тему, но либо используемый синтаксис больше не доступен в сегодняшней версии Git, либо он не работает для меня (я описал только один метод выше, потому что это самый простой подход).