Junio C Hamano <[email protected]> writes:
> Matthieu Moy <[email protected]> writes:
>
>> Ivo Anjo <[email protected]> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html