Case sensitivity in Git

僤鯓⒐⒋嵵緔 提交于 2019-11-26 18:56:36

问题


I've run into a problem with git. Basically I set to false core.ignorecase because I wanted to change the case of the names of some folders (since I'm under OSX with a case-insensitive filesystem, the changes weren't shown otherwise). When I pulled my data, I've noticed that now every renamed folder appears twice on the repository, with both the old and the new name. I don't know what to do to remove the old folders since they don't appear locally (I've try to set core.ignorecase to true again but it isn't helping).


回答1:


May be a workaround similar to this comment in an msysgit issue (for another case-insensitive OS: Windows) could help?

I've encountered this same issue. Refactored a package name in Eclipse and switching to a previous build broke due to the folder name not reverting. I'm using Windows 7, Git 1.7.0.2.msysgit.0

My folder was renamed in Windows to "folder" but was displayed as "Folder" in Git.
I fixed the issue by renaming it to "Folder" in Windows and then running:

git mv "Folder" "Folder2"
git mv "Folder2" "folder"

Note that since git 2.0.1 (June 2014), git mv Folder folder should just work!

See "Git: Changing capitalization of filenames"




回答2:


You can create a disk image (preferably a sparsebundle disk image) with a case-sensitive file system and checkout your git repository there.

The Disk Utility screenshot below shows how to create a case-sensitive disk image.




回答3:


Use the following command on macOS. This will change your git configuration to be case sensitive on filenames.

git config core.ignorecase false

You can set this globally by editing ~/.gitconfig and setting it under core such as:

[core]
    ignoreCase = false



回答4:


Mac OS X by default is "case insensitive but case preserving". This is an important distinction.

I suggest you create another disk image, and specifically format it as "HFS Case Sensitive".




回答5:


git mv "Folder" "Folder2"
git mv "Folder2" "folder"
git commit -a -m "my message"



回答6:


There is a longish recent thread on case sensitivity issues on the git@vger.kernel.org discussion forum titled Bug? Git checkout fails with a wrong error message which highlights the issues, and things to try, of case sensitivity between different platforms.



来源:https://stackoverflow.com/questions/8904327/case-sensitivity-in-git

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!