Как правильно убрать часть изменений из коммита из ветки, которую уже отправил на сервер?
Клонировал feature-branch из репозитория на gitlab. Вносил изменения, делал несколько комитов, отправлял обратно ветку на сервер. Теперь требуется убрать часть изменений из нескольких коммитов (кое-где pycharm автоматически понадобавлял пустые строки, пробелы). Подскажите, пожалуйста, как это правильнее всего сделать?
Ответы (1 шт):
Есть два основных способа:
Добавляем в ветку еще один коммит, который приводит файлы к нужному состоянию. В комментарии можно написать что-то вроде "подготовка к слиянию"
При помощи интерактивного
rebaseотредактировать каждый из своих коммитов, после чего сделатьpush --force
Первый способ более безопасен и осуществим всегда. Но в истории останутся ненужные правки. Он недопустим если, например, в коммит попали реальные пароли внутри конфигурационного файла.
Делать push --force в уже опубликованную ветку считается крайне некрасивым, а иногда это еще и опасно. Придется оповестить всех, кто также может работать с этой веткой. GitLab, например, автоматически запрещать force-push в master. Чтоб это провернуть придется попросить разрешения у администратора. Но по моему мнению для feature-branch это не только допустимо, но и является предпочтительным способом.