Make "git commit" clean up after itself

Noted by Jeff.
diff --git a/git-commit-script b/git-commit-script
index f88a51a..5e5c0cc 100755
--- a/git-commit-script
+++ b/git-commit-script
@@ -33,12 +33,16 @@
 if [ "$?" != "0" ]
 then
 	cat .editmsg
+	rm .editmsg
 	exit 1
 fi
 ${VISUAL:-${EDITOR:-vi}} .editmsg
 grep -v '^#' < .editmsg | git-stripspace > .cmitmsg
-[ -s .cmitmsg ] || exit 1
-tree=$(git-write-tree) || exit 1
-commit=$(cat .cmitmsg | git-commit-tree $tree $PARENTS) || exit 1
-echo $commit > $GIT_DIR/HEAD
-rm -f -- $GIT_DIR/MERGE_HEAD
+[ -s .cmitmsg ] && 
+	tree=$(git-write-tree) &&
+	commit=$(cat .cmitmsg | git-commit-tree $tree $PARENTS) &&
+	echo $commit > $GIT_DIR/HEAD &&
+	rm -f -- $GIT_DIR/MERGE_HEAD
+ret="$?"
+rm -f .cmitmsg .editmsg
+exit "$ret"