On OS X using whatever filesystem it comes with by default, I get the following, which doesn't seem right (but in a different way). $ mkdir case-sensitivity-test $ cd case-sensitivity-test $ git init-db defaulting to local storage area $ echo foo > foo $ echo bar > bar $ git add foo bar $ git commit -m initial\ commit Committing initial tree 89ff1a2aefcbff0f09197f0fd8beeb19a7b6e51c $ git checkout -b side $ echo bar-side >> bar $ git commit -m side\ commit -o bar $ git checkout master $ rm foo $ git update-index --remove foo $ echo FOO > FOO $ git add FOO $ git commit -m case\ change $ ls FOO bar $ git pull . side Trying really trivial in-index merge... fatal: Merge requires file-level merging Nope. Merging HEAD with e1f1e78035b099fad2bbfb82af7ec31864d8e4c1 Merging: 5d70969775bf595dd5144a2bacc25d32cc288352 case change e1f1e78035b099fad2bbfb82af7ec31864d8e4c1 side commit found 1 common ancestor(s): e35c42fad4f08c2ccf61d93409a0208e92028a51 initial commit Merge 98bf1cae75776c141ad3b61dc2cb938c71c303ef, made by recursive. bar | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) $ $ ls bar $ git ls-files -d FOO $ git ls-tree HEAD 100644 blob b7d6715e2df11b9c32b2341423273c6b3ad9ae8a FOO 100644 blob 5f8b81e197a2cb27816112fb5a6b86b7031ffde8 bar The checkout is losing the FOO file but the merged tree object has the merged FOO in it. -- - : 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