问题
In the first commitment of my partial called _Electronics it was written beginning with a capital letters, then I changed it to _electronics.
Git under cygwin ignored the case after commiting the new name, so I changed the name by hand in the target repo.
Now it sometimes changes the commited _electronics partial to _Electronics.
What have I done wrong?
回答1:
It will be seen as 2 different things but will cause you issues on a non-case-sensitive system. If this is the case, ensure you are tab-completing any paths or file names. Further, to change the name of something in just the case, do this:
mv file.txt temp.txt
git add -A
git commit -m "renaming..."
mv temp.txt File.txt
git add -A
git commit --amend -m "Renamed file.txt to File.txt"
This is an explicit way of making changes committing them, then collapsing the commits. A shorter way to do it is to manipulate the index and working folder all in one:
git mv file.txt temp.txt
git mv temp.txt File.txt
git commit -m "Renamed file.txt to File.txt"
This is related to adjusting directory names as well: git mv and only change case of directory
回答2:
It is going to depend on the core.ignorecase configuration value, which is set to false in case-sensitive filesystems and true in msysgit on Windows.
core.ignorecase
If true, this option enables various workarounds to enable git to work better on filesystems that are not case sensitive, like FAT. For example, if a directory listing finds "makefile" when git expects "Makefile", git will assume it is really the same file, and continue to remember it as "Makefile".
The default is false, except git-clone(1) or git-init(1) will probe and set core.ignorecase true if appropriate when the repository is created.
回答3:
This is far easier:
git mv Electronics electronics -f
git commit -m "That was easy!"
回答4:
git config --system core.ignorecase false
回答5:
In my scenario I had two folders tests and Tests which showed as two separate folders in Github but a single Tests folder in Windows. My aim was to combine them both into tests.
I used the following approach:
- Create a new folder
temp - Copy all content from
Teststotemp - Delete
Tests - execute
git rm Tests -r - Rename
temptotests
来源:https://stackoverflow.com/questions/8481488/is-git-not-case-sensitive