git пересказать без разрешения конфликтов слияния снова
Можно ли изменить сообщения фиксации с помощью git rebase, но без повторного разрешения конфликтов слияния?
Мне нужно боудлеризировать старое РЕПО, и я не хочу менять ни один из фактических кодов, только сообщения.
Я пробовал --preserve-merges.
2 ответов:
Есть малоизвестная функция git, называемая "повторное использование записанных разрешений", или rerere.
Вы можете включить его глобально, запустив
git config --global rerere.enabled 1.Если rerere включен, git автоматически сохранит разрешения конфликтов и будет повторно использовать эти разрешения позже, если он столкнется с теми же конфликтами. Это приводит к тому, что пользователю не требуется повторно разрешать эти ранее замеченные конфликты.
Эта особенность объясняется далее в посте на git-scm.com . Подробнее подробно, посмотрите справочный документ для Git rerere.
Примечание: с момента
contrib/rerere-train.shсценарий должен переобучать rerere (вы можете увидеть ручную переподготовку здесь )Чтобы убедиться, что
rerereзабывает все свое текущее разрешение перебазирования, теперь у вас есть официальная опция с Git 2.14.x / 2.15 (Q3 2017) дляcontrib/rerere-train: флаг--overwrite.См. commit ad53bf7 (26 Jul 2017) by Raman Gupta (
rocketraman).
(объединено Junio C Hamano --gitster-- in commit aec68c3 , 11 Aug 2017)
contrib/rerere-train: необязательно перезаписывать существующие разрешенияПредоставьте пользователю возможность перезаписать существующие разрешения с помощью
--overwriteфлаг.Это может быть использовано, например, если пользователь знает, что у него уже есть запись в кэше rerere для конфликта, но хочет удалить ее и переобучиться на основе коммита слияния, переданного сценарию rerere-train.
Comments