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