Изменить коммит, который не был предыдущим коммитом
Часто у меня будет рабочий процесс, подобный следующему:
- Зафиксируйте изменения в группе файлов
- Зафиксируйте изменения в другой группе файлов
- Поймите, я пропустил некоторые изменения, которые относятся к первому коммиту
- проклятие
Я не могу использовать git commit --amend
потому что это не последний коммит, который мне нужно изменить. Какой лучший способ добавить изменения в первый коммит, не касаясь второго?
1 ответ
Ты можешь использовать git rebase
чтобы решить это. Бежать git rebase -i sha1~1
где sha1 - хеш коммита того, который вы хотите изменить. Найдите коммит, который вы хотите изменить, и замените "pick" на "edit", как описано в комментариях редактора rebase. Когда вы продолжите оттуда, вы можете редактировать этот коммит.
Обратите внимание, что это изменит как sha1 этого коммита, так и всех потомков - другими словами, это переписывает историю с этого момента. Делая это, вы можете сломать репозитории, но если вы не нажали, это не так уж важно.