Как изменить файлы в старом коммите (не последнем)

Как изменить файлы в старом коммите (не последнем) в Git

0

Задача: внести изменения в файлы в старом коммите (не самом последнем/свежем).

Как изменить файлы в старом коммите

  1. Если вы уже изменили какие-либо файлы, то сначала нужно спрятать изменения. Для этого выполняем команду:

    git stash
  2. Посмотрим список коммитов:
    git log --oneline
  3. Выполняем команду git rebase -i и указываем ей коммит, который мы хотим изменить. В данном случае мы хотим изменить третий коммит (относительно HEAD).
    git rebase -i HEAD~3
  4. Откроется текстовый редактор со списком коммитов. Измените слово pick на edit (или просто на букву e) у коммита, который вы хотите изменить.
  5. Сохраните изменения в файле. Вы снова окажетесь в командной строке.
  6. Теперь внесите те изменения, которые вы хотели сделать с файлами. Если вы на первом шаге спрятали эти изменения, то сейчас их можно снова извлечь:
    git stash pop

    Или же просто отредактируйте файлы.

  7. Добавьте отредактированные файлы в индекс:
    git add myfile1 myfile2
  8. Применим наши изменения к коммиту:
    git commit --amend --no-edit
  9. Завершим процесс ребейза:
    git rebase --continue

    Если все пройдет успешно, то появится сообщение вида:

    Successfully rebased and updated refs/heads/master.
  10. Как изменить несколько коммитов

    Предположим, что нам нужно внести изменения сразу в несколько коммитов.

    Выполняем последовательность действий, описанную выше, но на шаге 4 нужно указать несколько коммитов, которые вы хотите изменить. Для этого нужно изменить слово pick на edit сразу у нескольких коммитов в списке.

    После сохранения файла (шаг 5) вы переключитесь на первый коммит (который старее), который вы пометили для редактирования.

    Выполните для него шаги с 6 по 8. После этого вы переключитесь на следующий коммит, который вы пометили для редактирования. И так далее.

0

Комментарии

Комментариев пока не было.

Написать комментарий

Ваше имя:
Текст комментария: