Отбросить старую фиксацию: `git rebase` вызывает конфликты слияния

К сожалению, некоторое время назад мы случайно проверили большой двоичный файл, и до сегодняшнего дня никто этого не заметил. Теперь я хочу отказаться от этой фиксации и оставить оставшуюся историю такой, какая она есть. Я знаю о предостережениях при изменении проталкиваемой истории, но в данном случае я не могу этого избежать.

Я пытался достичь этого в течение ~ 1 часа, но не смог. Лучшая команда, которую я нашел, - это

git rebase --interactive --preserve-merges $(EVIL_COMMIT)^

, и в редакторе комментируется 1-й коммит, который является злым.

К сожалению, git rebase останавливается при слиянии и предлагает ручное разрешение конфликтов слияния. Злой коммит только добавляет некоторые файлы примеров, которые наше программное обеспечение должно вычислить в целях тестирования. Таким образом, они не должны конфликтовать с просто отсутствующими файлами примеров.

  1. Я не понимаю, откуда возникают конфликты слияния. Кто-нибудь может объяснить?
  2. Как решить эту проблему?

Я провел довольно много времени в поиске Google и SO. Некоторые потоки охватывают схожую тему, но либо используемый синтаксис больше не доступен в сегодняшней версии Git, либо он не работает для меня (я описал только один метод выше, потому что это самый простой подход).

5
задан Daniel Böhmer 1 November 2011 в 17:06
поделиться