If git-commit is given a directory as argument to be included in the commit, it uses git ls-files to find out which files to include; this misses files previously removed from the working tree and the index through git rm: % git init-db Initialized empty Git repository in .git/ % mkdir bar baz % touch bar/file1 baz/file1 baz/file2 % git add . && git commit -mcommit1 Created initial commit 1d7dee4: commit1 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 bar/file1 create mode 100644 baz/file1 create mode 100644 baz/file2 % git rm baz/file1 rm 'baz/file1' % git commit -- baz/ # On branch master # Changed but not updated: # (use "git add/rm <file>..." to update what will be committed) # # deleted: baz/file1 # no changes added to commit (use "git add" and/or "git commit -a") This patch lets it additionally use git ls-tree to look for the files in the HEAD tree, but I guess there's a smarter way to fix this. --- git-commit.sh | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/git-commit.sh b/git-commit.sh index 1d04f1f..3ac7c4f 100755 --- a/git-commit.sh +++ b/git-commit.sh @@ -381,6 +381,7 @@ t,) fi TMP_INDEX="$GIT_DIR/tmp-index$$" commit_only=`git ls-files --error-unmatch -- "$@"` || exit + commit_only="$commit_only "`git ls-tree -r --name-only HEAD -- "$@"` || exit # Build a temporary index and update the real index # the same way. -- 1.5.3 - 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