rebase - автоматически продолжить, если повторно разрешены все конфликты

Git rerere обеспечивает повторное использование предыдущих разрешений конфликтов во время перебазирования и даже может разрешенные файлы, установив rerere.autoupdate = True (как подробно описано в другом вопросе) . Однако, даже если все конфликты разрешены и все файлы поставлены, мне все равно придется запустить git rebase --continue, чтобы продолжить операцию перебазирования.

Как я могу автоматически продолжить, если rerere разрешил все конфликты и произвел все изменения?


person frasertweedale    schedule 11.06.2015    source источник
comment
На другой вопрос есть хороший ответ stackoverflow.com/a/27513648/259946   -  person hazzik    schedule 23.06.2015
comment
Я не знаю, имел ли в виду @frasertweedale вопрос таким образом, но я использую git rebase -i в скрипте (с GIT_SEQUENCE_EDITOR). Таким образом, отказ от автоматического продолжения / пропуска разрешенных конфликтов - это PITA, потому что либо я должен делать это вручную, либо подражать тонкости if ! git rebase […]; then git rebase --abort; fi с большим количеством git reset, git cherry-pick и т. Д. И, следовательно, с множеством возможностей испортить.   -  person Tim Landscheidt    schedule 31.12.2016


Ответы (2)


Нет. Rebase или Merge не обеспечивают автоматическую фиксацию при возникновении конфликтов. Подробнее о git merge можно узнать здесь в разделе «слияние ' Заголовок. git config также не предоставляет возможность автоматической фиксации при перемещении. Обратите внимание, что при слиянии вы можете выбрать вариант «Не совершать фиксацию».

person fundoopanda    schedule 18.06.2015

Rebase должна больше использовать rerere-autoupdate из Git 2.14.x / 2.15 и далее (3 квартал 2017 г.).

См. фиксацию f826fb7, совершить 8d8cb4b, 6f0e577, совершить 9b6d7a6, совершить 5fb415b, commit fd4a3f4 (2 августа 2017 г.) от Филиппа Вуда (phillipwood).
(объединено Junio ​​C Hamano - _2 _ - в commit 1016495, 22 августа 2017 г.)

Это потому, что сейчас:

rebase: честь --rerere-autoupdate

Rebase принимает '--rerere-autoupdate' как параметр, но учитывает его только в том случае, если также задано '-m'.
Исправьте это для неинтерактивного перебазирования, передав параметр 'git am' и 'git cherry-pick'.

rebase -i: честь --rerere-autoupdate

Интерактивное перебазирование игнорировало «--rerere-autoupdate».
Исправьте это, прочитав соответствующий файл при восстановлении состояния секвенсора для интерактивного перебазирования и передав «--rerere-autoupdate» для слияния и выбор вишни при перебазировании с «--preserve-merges».

person VonC    schedule 31.08.2017
comment
Обратите внимание, что это не работает для rebase --continue, т.е. вам уже нужно указать его для начальной команды rebase. - person jmiserez; 19.07.2018