DEV Community

Danil Poletavkin
Danil Poletavkin

Posted on • Edited on

Git Как изменить любой коммит

Для того, чтобы изменить любой коммит, нужно использовать команду git rebase. Важно, что при этом все изменения, которые планируется внести в коммит должны быть скрыты командой stash, то есть вывод команды git status должен быть пустой:
1.Допустим в области изменений git есть какие-то файлы, которые мы хотим добавить к коммиту командой git rebase, и есть файлы, которые добавлять не планируется.
В таком случае нужно скрыть изменения поочерёдно командой git stash push [относительный путь к файлу].
Показать список скрытых файлов можно командой git stash list.
Команда git stash сохраняет записи по методу стэка, то есть последние добавленные записи имеют меньший индекс, а самая последняя добавленная запись имеет индекс 0.
Хорошая статья про команду git stash https://tangenttechnologies.ca/blog/git-stash-single-file/
2.Выполнить команду
git rebase —interactive [номер коммита^]
обратить внимание на символ ^ - это означает, что мы перемещаемся в состояние «до» этого коммита
3.В открывшемся файле или консольном текстовом редакторе (в зависимости от того, какой редактор настроен для работой с git) с коммитами указать, какой коммит мы хотим изменить — вместо pick написать edit
4.Выполнить изменения, например добавить файлы к коммиту. Если изменения находятся в состоянии stash, выполнить команду
git stash pop
или
git stash pop [номер изменения]
5.Выполнить команду
git commit —amend
6.Выполнить команду
git rebase —continue
7.При необходимости перезаписать изменения на сервере командой
git push --force

Top comments (0)