Unstage committed changes but keep new files in index

git, git-add, git-reset

Solution

After reading the doc more attentively, I found the answer.

This does exactly what I want: `git reset --mixed -N HEAD~1`

Problem

I want to split the last commit in two, so I use `git reset HEAD~1`, but then it loses track of the new files that were added by the commit (which were not tracked before), and I have to carefully add them back one by one. I often have other untracked files lying around waiting to be committed later, so this is annoying. What I would like is a way to `reset` but keep the files added by the commit as empty, as if they had been added with `git add --intent-to-add` (i.e. `git add -N`).

Original source