2015-11-13 2 views
1

Я и моя команда разрабатывают функцию с удаленной веткой (origin/our_feature_branch) с основной дорожки (origin/dev). Gerrit используется для обзора и т. Д.Как переустановить слияние, но сохранить фиксацию слияния

Подъем дистанционной ветви осуществляется с помощью git merge origin/dev, за которым следует устранение конфликтов, совершение и git push origin HEAD:refs/for/our_feature_branch.

Gerrit применяет правило, в котором говорится, что может быть нажата только одна фиксация за раз. Я ничего не могу с этим поделать.

Скажем, я начинаю работать делать поднятие:

git fetch 
git checkout -b uplift origin/our_feature_branch 
git merge origin/dev 

Но здесь я застрять фиксируя некоторые конфликты и регрессивные тесты занять некоторое время, чтобы работать, а некоторые из членов команды представляет другой совершить в эту ветку в Геррит. Эта фиксация теперь находится поверх базовой фиксации для моего «текущего» поднятия.

Что мне делать?

Если я переустанавливаю фиксацию слияния на ветке свойств, я удаляю слияние и добавляю все коммиты, объединенные с origin/dev поверх нее, а не вариант. Если я объединился с ветвью функций, у меня получится слияние при слиянии, и мне в итоге придется нажать две коммиты на Gerrit - также не разрешено.

Есть ли решение для этого или мне нужно повторно выполнить слияние и попытаться не забыть рассказать всем, что у нас есть остановка доставки в следующий раз, когда я начну работать над поднятием?

+1

Вы пробовали скомпилировать фиксацию слияния на новой фиксации с помощью 'git rebase -p'? – user4815162342

+0

Чтение документации, '-p' выглядит многообещающим. Я дам это, когда вернусь в офис в понедельник, спасибо! – Martin

ответ

1

Как было предложено в комментариях, git rebase -p решает проблему

Start, чтобы создать подъем фиксации:

git fetch 
git checkout -b uplift origin/our_feature_branch 
git merge origin/dev 
git commit 

Что-то представляется origin/our_feature_branch в Геррит.

Выполните следующие действия, чтобы перебазировать слияние фиксации и сохранить слияние:

git fetch 
git rebase -p origin/our_feature_branch 

Теперь слияние фиксации может быть прижато к Герриту и он будет основан на последнем на origin/our_feature_branch и те же origin/dev, как и до git rebase -p

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