Редактировать
Этот ответ был опубликован до того, как этот другой ответ был исправлен. В настоящий момент я думаю, что один лучше, чем мой, с технической точки зрения.
Оригинальный ответ
Операция прошла очень хорошо, репо
mkdir testdir
cd testdir/
git init
echo 'historical content of file_one' > file_one
echo 'historical content of file_two' > file_two
git add file_one file_two
git commit -m 'this is the most recent commit the OP is happy with'
Затем ОП приступил к редактированию обоих файлов с намерением зафиксировать их в двух отдельных коммитах,
echo 'one more line to file_one' >> file_one
echo 'one more line to file_two' >> file_two
, однако ОП допустил ошибку, зафиксировав оба файла:
git commit -am 'this commit was meant to be only for file_one'
На этом этапе я будет делать следующее:
git reset HEAD~
, который, по сути, возвращается к git add file_one file_two
, а затем я ставлю file_one
и фиксирую его, используя старое сообщение, а затем file_two
и фиксирую тоже:
git add file_one
git commit --reuse-message=HEAD@{1}
git add file_two
git commit -m 'Committing only changes to file_two