Короткий ответ:
$ git reset HEAD^ <file to remove from commit>
$ git commit --amend
это оставит локально измененным <file>
, так что, если вы больше не хотите модификацию, вы можете отменить эту модификацию:
$ git checkout <file>
Это самый быстрый способ сделать это.Другой вариант:
$ git log -n1 --oneline | cat
$ git reset --soft HEAD^
$ git reset <file to be unstaged>
$ git commit -C <sha1 commit hash from "git log" above>