Геррит случайно ввел некоторые коммиты слияния (настроенные с опцией «Объединить, если необходимо»), и я хотел бы удалить их из истории. Я знаю о подводных камнях переписывания истории при командной работе с Git, но в нашем случае разработчики от этого не пострадают, так как ни у кого из них нет локальных изменений именно в этом репозитории.
Я сделал git rebase -i
локально, и Git автоматически удалил коммиты слияния Геррита. Я тщательно удалил предыдущие идентификаторы изменений Gerrit в каждом сообщении коммита, а хук сообщений коммита Gerrit добавил новые.
вывод команды git status
:
На мастере ветки Ваша ветка и «происхождение/мастер» расходятся и имеют 7 и 9 разных коммитов соответственно. (используйте «git pull», чтобы объединить удаленную ветку с вашей) ничего не нужно коммитить, рабочий каталог чист
Это то, что я хочу (9 коммитов минус 2 коммита слияния).
Когда я пытаюсь нажать на Геррита с помощью git push origin HEAD:refs/for/master
, я не получаю никакой ошибки. Однако, когда я пытаюсь просмотреть и отправить через веб-интерфейс Gerrit, я получаю следующую ошибку:
Не удалось объединить изменение из-за конфликта путей. Перебазируйте изменение локально и загрузите измененную фиксацию для проверки.
Что я сделал не так?