git reset --soft HEAD^
devrait faire ce que vous voulez. Après cela, vous aurez les premiers changements dans l'index (visibles avec git diff --cached
), et vos derniers changements ne sont pas transférés. git status
ressemblera alors à ceci:
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: foo.java
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: foo.java
#
Vous pouvez alors faire git add foo.java
et valider les deux modifications en même temps.