git reword без разрешения конфликтов слияния снова - PullRequest
11 голосов
/ 13 февраля 2012

Можно ли изменить сообщения коммита, используя git rebase, но без необходимости повторного разрешения конфликтов слияния?

Мне нужно подстегнуть старое репо, и я не хочу менять какой-либо реальный код, только сообщения.

Я пробовал --preserve-merges.

Ответы [ 2 ]

12 голосов
/ 13 февраля 2012

Существует малоизвестная функция git, которая называется «Повторное использование записанных разрешений» или rerere.

Вы можете включить его глобально, запустив git config --global rerere.enabled 1.

Если включен rerere, git автоматически сохраняет разрешения конфликтов и будет использовать эти разрешения позже, если столкнется с такими же конфликтами. Это приводит к тому, что пользователь не требует повторного разрешения этих ранее обнаруженных конфликтов.

Эта функция более подробно описана в посте на git-scm.com . Для получения более подробной информации см. Справочный документ для git rerere .

3 голосов
/ 13 августа 2017

Примечание: поскольку сценарий contrib/rerere-train.sh должен переобучать переобучение (вы можете увидеть ручную переподготовку здесь )

Чтобы убедиться, что rerere забывает все свое текущее разрешение перебазировки, теперь у вас есть официальная опция с Git 2.14.x / 2.15 (Q3 2017) для contrib/rerere-train: флаг --overwrite.

См. коммит ad53bf7 (26 июля 2017 г.) от Раман Гупта (rocketraman) .
(Объединено с Junio ​​C Hamano - gitster - в commit aec68c3 , 11 августа 2017 г.)

contrib/rerere-train: при желании перезаписать существующие разрешения

Предоставьте пользователю возможность перезаписывать существующие разрешения, используя --overwrite флаг.

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

...