Невозможно объединиться в Gerrit
Всякий раз, когда я отправлял отзыв на Gerrit, и если рассмотрение ожидает некоторое время, я получаю сообщение cannot merge
в Gerrit.
Я понял его, потому что кто-то другой изменил бы тот же файл/файлы и доставил передо мной. Я пытаюсь выполнить обходной путь, чтобы решить мою проблему.
- Отмените текущий обзор.
- Создайте новую локальную ветвь, возьмите
- Cherry-pick my commit из старой ветки и отправьте на gerrit
Это работает, но комментарии по обзору, что бы я ни был, больше не будут доступны, и мой рецензент будет сложно проверить его снова.
Я ищу способ удалить cannot merge
из текущего обзора. Спасибо!
Ответы
Ответ 1
Вам не нужно отказываться от текущего изменения на Gerrit, чтобы решить проблему "не может объединиться". Все, что вам нужно сделать, это:
- Обновите локальный репозиторий (git fetch)
- Запустите ручную перезагрузку (git rebase)
- Разрешить конфликты (git mergetool)
- Зафиксировать результат (git commit -amend)
- Нажмите новый патч-набор на Gerrit (git push)
Ответ 2
Попробуйте кнопку rebase
, которая может решить большинство проблем с невозможностью объединения. Если он может найти правильную фиксацию для переустановки самостоятельно, все в порядке. Если он не может найти последнюю фиксацию целевой ветки и заполнить бланк фиксации. Иногда вам нужно сначала отправить коммит, на который не может быть слияния, есть зависимость. Если он не может работать так или иначе, просто оставите его и сделайте фиксацию на основе последней фиксации.
Ответ 3
Лучшая практика при работе с базой общего кода с использованием git/gerrit - сохранять как можно меньше отдельных изменений. Вместо того, чтобы отправлять свои изменения в одном большем коммите, разделите его на серию меньших коммитов (отправьте ветку gerrit), которые имеют одно логическое изменение на коммит. Этот рабочий процесс:
- уменьшает вероятность конфликта в одно изменение
- облегчает и ускоряет разрешение конфликтов
- сделать изменения быстрее, чтобы рассмотреть
Таким образом, вероятность того, что кто-то объединит свои изменения до того, как вы уменьшите. Вам следует как можно скорее выполнить перебазирование, чтобы изменения можно было легко просмотреть. Регулярная перебазировка против вышестоящей ветки означает, что вы всегда в курсе изменений, и вам не нужно иметь дело с большим конфликтом слияния (вы получаете более мелкие, более управляемые проблемы, которые нужно решить).
Я не уверен, что это отвечает на ваш вопрос, но я следую этим двум правилам и у меня нет проблем.