Re: How to prevent empty git commit --amend
From: Junio C Hamano <hidden>
Date: 2016-06-15 23:03:29
Junio C Hamano [off-list ref] writes:
Matthieu Moy [off-list ref] writes:quoted
Ivo Anjo [off-list ref] writes:quoted
Is there a way to prevent a *git commit --amend** with nothing to commit from working? If not, I would like to suggest that this feature would be very helpful :)I don't know any way to let Git do the check for you, but git diff --staged --quiet || git commit --amend should do it. You can alias it like [alias] amend = !git diff --staged --quiet || git commit --amend and then use "git amend".That would not let you say "git amend Makefile", no? !sh -c 'git diff --cached --quiet "$@" || git commit --amend "$@"' - or something, perhaps?
Heh, not that but something like that ;-).
* If we have pathspec, we would want to see if the HEAD and the
working tree differ at the given paths;
* Otherwise we would want to see if the HEAD and the index differ.
So it would be more like this, I guess.
case "$#" in
0) git diff --quiet --cached ;;
*) git diff --quiet HEAD -- "$@" ;;
esac || git commit --amend ${1+--} "$@"