Я использую gerrit
для проекта, у меня есть локальная ветвь с двумя коммитами (1) (2), отстоящими от удаленной ветки разработки, как показано на рисунке
.
Прежде чем я смог перенести свои изменения в удаленную разработку, я вытащил из удаленного, объединил изменения, как показано в узле (m).Затем я попытался перейти к удаленному, я получил сообщение об ошибке, в котором говорится, что существуют конфликты между (1) (2) и (3) (4).Я не понимаю, почему это произошло, я подумал, git push
только подталкивает объединенный (м) к удаленному.Поэтому, чтобы решить эту проблему, я должен сбросить слияние, перебазировать в развитие, затем нажать, но я чувствую, что должен быть лучший способ справиться с этим.
РЕДАКТИРОВАТЬ: Я ужерешил проблему с помощью rebase, которая в точности соответствует предложенному здесь @Marcelo, не может вернуться, чтобы получить точное сообщение об ошибке, но произошло то, что, когда я обнаружил конфликты, я исправил конфликты и объединил их, а затем набрал git status
itговорит, что я на 1 коммит впереди удаленного, поэтому я выполнил git push origin HEAD:refs/for/developer
, и Геррит не разрешил мне сказать, что есть конфликты для commit (1) и (2), а не commit (m), как показано на моем изображении... Я не понимаю эту часть, так как я думал, что push
только выдвигает коммиты, которые находятся перед удаленным, почему удаленный говорит, что есть конфликты для commit (1) и (2), я подозреваю, что это из-за особого Герританастройки.