Изменить коммит, который не был предыдущим коммитом

Часто у меня будет рабочий процесс, подобный следующему:

  1. Зафиксируйте изменения в группе файлов
  2. Зафиксируйте изменения в другой группе файлов
  3. Поймите, я пропустил некоторые изменения, которые относятся к первому коммиту
  4. проклятие

Я не могу использовать git commit --amend потому что это не последний коммит, который мне нужно изменить. Какой лучший способ добавить изменения в первый коммит, не касаясь второго?

1 ответ

Решение

Ты можешь использовать git rebase чтобы решить это. Бежать git rebase -i sha1~1 где sha1 - хеш коммита того, который вы хотите изменить. Найдите коммит, который вы хотите изменить, и замените "pick" на "edit", как описано в комментариях редактора rebase. Когда вы продолжите оттуда, вы можете редактировать этот коммит.

Обратите внимание, что это изменит как sha1 этого коммита, так и всех потомков - другими словами, это переписывает историю с этого момента. Делая это, вы можете сломать репозитории, но если вы не нажали, это не так уж важно.

Другие вопросы по тегам