Как добавить файл к последнему фиксации в git?

Иногда после того, как я совершил коммит, я узнал, что я оставил файл, который также должен быть включен в коммит, но на самом деле нет. То, что я часто делал, было повторением.

git add the_left_out_file
git commit "include the file which should be added in the last commit"

Я думаю, что это не очень хорошая идея, я хочу просто включить файл без добавления фиксации. Что-то вроде этого,

git add the_left_out_file
git add_staged_files_to_previous_commit

Возможно ли это?

Ответ 1

Да, есть команда git commit --amend, которая используется для "исправления" последней фиксации.

В вашем случае это будет вызываться как:

git add the_left_out_file
git commit --amend --no-edit

Флаг --no-edit позволяет внести изменения в фиксацию без изменения сообщения фиксации.

EDIT: Вы никогда не должны вносить изменения в публичные коммиты, которые уже были перенесены в общедоступный репозиторий, потому что то, что исправление действительно удаляет из последнего последнего фиксации и создает новый коммит с комбинированными изменениями от этого коммита и нового, добавленного при внесении изменений.

Ответ 2

Если вы не нажимали обновление на удаленном компьютере, то простым решением является удаление последнего локального коммита с помощью следующей команды: git reset HEAD^. Затем добавьте все файлы и снова зафиксируйте.