Вместо того, чтобы делать git rebase -i HEAD~21
, у меня есть альтернативный рабочий процесс, который поможет решить некоторые из ваших проблем, и я объясню каждый шаг ниже.
git checkout branch br
git pull
Это гарантирует, что у вас установлена последняя версия ветки br.
git checkout <your feature branch>
git rebase <br>
Это повторно применит ваши коммиты поверх другой базовой подсказки (в данном случае обновленной ветки br). Это сделает так, что все, о чем вам нужно беспокоиться, - это ваши собственные коммиты и их раздавливание. Если я правильно помню, это также та точка, в которой вы будете иметь дело с конфликтами слияния.
git rebase -i <br>
Отсюда вы знаете, что делать. Squa sh или исправьте, как обычно.
Поскольку вы выполнили перебазирование, вам, конечно же, нужно будет сделать git push -f <origin yourbranch>
, поэтому убедитесь, что ваш журнал git имеет то, что вы хотите. Вы можете использовать журнал ссылок для отката изменений, если вы здесь допустили ошибку.