Я знаю, что могу использовать rerere
, чтобы записать разрешение слияния с конфликтами.Как записать «разрешение» неконфликтных слияний?
Но это не помогает мне в моей нынешней ситуации:
Я имел экспериментальную ветвь, которую я слился в мою основную ветвь, используя --strategy ours
, отбрасывая любые изменения, которые я сделал, но сохраняя всю историю для будущей ссылки , Изменения в экспериментальной ветви не были связаны ни с какими изменениями в основной ветке, поэтому были никаких конфликтов, и поэтому rerere
ничего не записывал.
Теперь я хочу, чтобы перебазировать эту часть моей истории (с использованием --preserve-merges
), но так как не было никакого конфликта, Git счастливо повторы слияния с использованием стратегии в по умолчанию, вместо нашей стратегии , что я первоначально использовался. Теперь все изменения от устаревшей экспериментальной ветви заканчиваются в моей переустановленной основной ветке (но я хочу, чтобы они снова были отброшены).
Как я могу научить Git помнить стратегии слияния, которые я использовал, и повторно использовать их при перезагрузке?
Вы не можете: слияния не записывают аргумент '-s', используемый где угодно. Это своего рода незначительный недостаток в Git, поскольку, как вы видели, 'git rebase -preserve-merges' должен повторно выполнять * слияния. Разумеется, вы можете вручную пометить свои слияния (например, с сообщением фиксации), но скрипт rebase не заметит, поэтому вам также нужно будет написать собственный скрипт перезаписи. – torek