You should also check out git commit --fixup ...
paired with git rebase -i --autosquash ...
. you specify a commit target to the fixup to say you want to fix that commit with the code you’re currently committing. It will create a fixup commit at HEAD. The auto squash will reorder your fixup commit and mark it as a squash so you have way less work to do.
“Voluntarily” in the title makes it seem like it is not appetizing. I find dal delicious, and it’s not my native cuisine.