Junio C Hamano <gitster@xxxxxxxxx> writes: > Matthieu Moy <Matthieu.Moy@xxxxxxxxxxxxxxx> writes: > >> Ivo Anjo <ivo.anjo@xxxxxxxxxx> writes: >> >>> 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+--} "$@" -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html