Git повторить без разрешения конфликтов слияния снова
Можно ли изменить сообщения фиксации с помощью git rebase, но без повторного разрешения конфликтов слияния?
Мне нужно поклониться более старому репо, и я не хочу менять какой-либо код, а только сообщения.
Я пробовал --preserve-merges.
Ответ 1
Есть малоизвестная особенность git под названием "Повторное использование записанных разрешений", или rerere.
Вы можете включить его глобально, запустив git config --global rerere.enabled true.
Если rerere включен, git автоматически сохраняет разрешения конфликтов и будет использовать эти разрешения позже, если столкнется с такими же конфликтами. Это приводит к тому, что пользователь не требует повторного разрешения этих ранее обнаруженных конфликтов.
Чтобы rerere забыл все свое текущее разрешение перебазировки, теперь у вас есть официальная опция с Git 2.14.x/2.15 (3 квартал 2017 года) для contrib/rerere-train: флаг --overwrite.
contrib/rerere-train: при желании перезаписать существующие разрешения
Предоставьте пользователю возможность перезаписывать существующие разрешения, используя --overwrite флаг.
Это может быть использовано, например, если пользователь знает, что у него уже есть запись в своем кэш-памяти перерегистрации для конфликта, но хочет удалить ее и переобучиться на основе коммитов слияния, переданных в сценарий переобучения.