I am trying to rename a file to have different capitalization from what it had before:
git mv src/collision/b2AABB.js src/collision/B2AABB.js fatal: destination exists, source=src/collision/b2AABB.js, destination=src/collision/B2AABB.js
As you can see, Git throws a fit over this. I tried renaming using just the plain old mv
command as well, but Git doesn't pick up the rename (as a rename or as a new untracked file).
How can I change a file to have a different capitalization of the same name? I am on Mac OS X v10.7.3 (Lion) with Git 1.7.9.1 using Z shell (zsh) 4.3.15.
Git is case-sensitive and your filesystem may not be - Weird folder merging on Windows - Scott Hanselman's Blog.
Git keeps track of changes to files in the working directory of a repository by their name. When you move or rename a file, Git doesn't see that a file was moved; it sees that there's a file with a new filename, and the file with the old filename was deleted (even if the contents remain the same).
Starting Git 2.0.1 (June 25th, 2014), a git mv
will just work on a case-insensitive OS.
See commit baa37bf by David Turner (dturner-tw
).
mv
: allow renaming to fix case on case-insensitive filesystems"git mv hello.txt Hello.txt
" on a case-insensitive filesystem always triggers "destination already exists
" error, because these two names refer to the same path from the filesystem's point of view and requires the user to give "--force
" when correcting the case of the path recorded in the index and in the next commit.
Detect this case and allow it without requiring "
--force
".
git mv hello.txt Hello.txt
just works (no --force
required anymore).
The other alternative is:
git config --global core.ignorecase false
And rename the file directly; git add and commit.
It does work in a CMD. It might fail in a git bash (on Windows) session (see Louis-Caron's answer)
As noted by jaquinocode in the comments, if your local repository itself has that setting:
git config --local core.ignorecase false
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With