2016-10-12 4 views
2

Вот мерзавец перебазироваться/слияния/продолжить сценарий, для которого запрашивается более целесообразен подход:мерзавец Force перебазироваться принять мою версию после первоначального слияния конфликта

Дано: файл, который имеет изменения в оба текущую ветку и ветку .

Выполнено: вручную слияние файлов.

Усложнение: следующая команда, кажется, требовалось несколько раз: он находит лишь небольшую часть из «требуемая» (в соответствии с ЖКТ) изменения, которые будут объединены в одном кадре:

git rebase --continue 

Желаемый результат: есть Git просто «принять» файл, который у меня есть в существующей ветке.

Что было опробовано: после первоначального rebase оригинальная версия файла была скопирована поверх этой проблемы.

Что произошло: после git rebase --continue файл по-прежнему конфликтует - но с другим набором конфликтов слияния. Этот процесс повторяется несколько раз и еще не выполнен.

Можем ли мы «перейти к погоне» и просто принять файл, который я обновил?

ответ

3

Причина, по которой у вас несколько конфликтов, заключается в том, что вы перекомпилируете несколько коммитов, причем несколько (все?) Из них содержат конфликтующие изменения в файле. Вы не можете пропустить эти шаги разрешения конфликтов, так как вы создаете несколько новых коммитов, и для каждой из них требуется определенная версия файла в разрешенном состоянии.

Вы можете либо продолжить, как раньше, либо вы можете выкачать свои коммиты и тем самым избежать необходимости генерировать несколько коммитов и только сливаться один раз.

+0

Thx для объяснения, почему это происходит. Я просто ударил 'git add *' и 'git rebase -continue' несколько раз **, игнорируя пока что файл был« беспорядок »**. А затем после последней итерации копируется весь файл. – javadba

3

Посмотрите на git rerere

https://git-scm.com/2010/03/08/rerere.html

Вот суть (взятый из этой статьи):

Название означает «повторное использование записано разрешение» и, как следует из названия, его позволяет вам попросить Git вспомнить, как вы разрешили конфликт с hunk, чтобы в следующий раз, когда он увидел тот же конфликт, Git может автоматически разрешить его для вас.

+0

забыл об этом - спасибо! О, у меня уже было это: 'git config --global rerere.enabled' возвращает' true' – javadba

Смежные вопросы