Как правильно убрать часть изменений из коммита из ветки, которую уже отправил на сервер?

Клонировал feature-branch из репозитория на gitlab. Вносил изменения, делал несколько комитов, отправлял обратно ветку на сервер. Теперь требуется убрать часть изменений из нескольких коммитов (кое-где pycharm автоматически понадобавлял пустые строки, пробелы). Подскажите, пожалуйста, как это правильнее всего сделать?


Ответы (1 шт):

Автор решения: Герман Борисов

Есть два основных способа:

  1. Добавляем в ветку еще один коммит, который приводит файлы к нужному состоянию. В комментарии можно написать что-то вроде "подготовка к слиянию"

  2. При помощи интерактивного rebase отредактировать каждый из своих коммитов, после чего сделать push --force

Первый способ более безопасен и осуществим всегда. Но в истории останутся ненужные правки. Он недопустим если, например, в коммит попали реальные пароли внутри конфигурационного файла.

Делать push --force в уже опубликованную ветку считается крайне некрасивым, а иногда это еще и опасно. Придется оповестить всех, кто также может работать с этой веткой. GitLab, например, автоматически запрещать force-push в master. Чтоб это провернуть придется попросить разрешения у администратора. Но по моему мнению для feature-branch это не только допустимо, но и является предпочтительным способом.

→ Ссылка