Git add interactivo

git add -p filename
git add --interactive filename

Muestra una interface basada en vim que permite indicar que parte de los cambios pasar al staging.

y: todos los cambios
n: ningún cambio
s: split del hunk para manejar grupos de cambios individualmente
e: entrar a edición

En edición, es posible eliminar las líneas (dd), o entrar a modo insert y ponerle + (para agregar) o - (para quitar) o # (para comentar), luego guardar (wq).