By default, git sets core.ignorecase=true when git init or git clone is run on a machine with a case-insensitive filesystem. Here's a test-case for some problems that this causes: git checkout master touch TestCase git add TestCase git commit -m 'add TestCase' git checkout -b with-camel touch foo git add foo git commit -m 'intervening commit' git checkout master git rm TestCase touch testcase git add testcase git commit -m 'rename to testcase' git checkout with-camel git merge master -m 'merge' One would expect a clean working copy at this point, but in fact, the file 'testcase' will be deleted. With core.ignorecase=false, we get a different failure. The penultimate command fails with: $ git checkout with-camel error: The following untracked working tree files would be overwritten by checkout: TestCase Please move or remove them before you can switch branches. Aborting Of course, there is no untracked working tree file by that name; there is a tracked working tree file named testcase (all-lowercase). -- 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