## Редактирование последнего коммита ``` git commit --amend ``` ## Редактирование нескольких коммитов Специального инструмента для редактирования истории в Git не существует, но можно воспользоваться процедурой перемещения и поместить коммиты там, где изначально находился их указатель HEAD, а не в другое место. Для входа в интерактивный режим команду git rebase запускают с параметром -i. Следует указать, насколько давние коммиты вы собираетесь переписывать, сообщив команде, для какого коммита будет выполняться перемещение. Например, вы пытаетесь внести изменения в три последних коммита, но при этом хотим изменить четвертый коммит с конца — родителя последнего интересующего вас коммита: ``` git rebase -i HEAD~3 ``` Эта команда служит для перемещения, то есть будут переписаны все коммиты в диапазоне HEAD~3..HEAD вне зависимости от того, меняете вы для них сообщение или нет. Ни в коем случае не включайте в этот набор коммиты, уже отправленные на центральный сервер, — сделав так, вы запутаете других разработчиков, предоставив им альтернативную версию уже имеющихся изменений. ## Последнее средство: команда filter-branch Существует еще один способ переписывания истории, к которому прибегают, когда при помощи сценария нужно внести изменения в большое количество коммитов, например везде поменять ваш адрес электронной почты или убрать какой-то файл из всех коммитов. В таких случаях вам на помощь приходит команда `filter-branch`, позволяющая переписывать большие фрагменты истории. Как обычно бывает в подобной ситуации, ее можно использовать только для проектов, которые еще не попали в общий доступ и переписываемые коммиты не служат основой ничьей работы.