Raimund Bauer offered this suggestion (paraphrased): "Maybe we could do git-commit -a _only_ if the index matches HEAD, and otherwise keep current behavior? So people who don't care about the index won't get tripped up, and when you do have a dirty index, you get told about it?" Johannes Schindelin pointed out that this isn't the right thing to do for an --amend, so that is checked for. Additionally, it's probably not the right thing to do if any files are specified with "--only" or "--include", so they turn this behaviour off as well. I've also output a message as suggested by Andreas Ericsson. Signed-off-by: Andy Parkins <andyparkins@xxxxxxxxx> --- git-commit.sh | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/git-commit.sh b/git-commit.sh index 81c3a0c..fabfeae 100755 --- a/git-commit.sh +++ b/git-commit.sh @@ -265,6 +265,14 @@ $1" done case "$edit_flag" in t) no_edit= ;; esac +# Clever commit - if this commit would do nothing, then make it an "all" +# commit +if [ -z "$(git-diff-index --cached --name-only HEAD)" \ + -a -z "$amend" -a -z "$only" -a -z "$also" ]; then + echo "Nothing to commit but changes in working tree. Assuming 'git commit -a'" + all=t +fi + ################################################################ # Sanity check options -- 1.4.4.1.g3ece-dirty - 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