如何在 OSX 上正确更改 Git 中的文件名大小写

Omn*_*Omn 6 git macos

在具有此文件系统的 OSX 10.10.2 和 Git 2.2.1 上: 文件系统个性:日志式 HFS+ 类型(捆绑包):hfs 名称(用户可见):Mac OS 扩展(日志式)

我已经看到了与此相关的几个问题和答案: 无法解析的 Git 错误:以下未跟踪的工作树文件将被签出覆盖

该问题的实际解决方案并未明确指定,但涉及:

将选项设置为 true 后,我花了一些文件历史记录(删除并重新添加文件)来解决此错误。

我已经尝试了提供的其他解决方案,但仍然面临如何正确移动文件的问题。

运行后:

sudo git config --unset-all core.ignorecase && sudo git config --system core.ignorecase false
Run Code Online (Sandbox Code Playgroud)

然后我仍然无法使用 (git 2.2.1) 重命名文件,因为我收到错误fatal: destination exists

git mv File.name file.name
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方法重命名它们:

git mv File.name File.name.tmp
git mv File.name.tmp file.name
Run Code Online (Sandbox Code Playgroud)

但是,我无法签出较旧的提交/分支,因为我收到以下消息:

error: The following untracked working tree files would be overwritten by merge:
File.name
Run Code Online (Sandbox Code Playgroud)

如果我强制签出或将ignorecase更改为true,我可以切换分支,但是我仍然无法合并更改,因为我收到以下消息:

error: The following untracked working tree files would be overwritten by merge:
file.name
Run Code Online (Sandbox Code Playgroud)

请注意,冲突的文件名在这两条错误消息中更改了大小写。在这两种情况下,运行 a 都git reset --hard HEAD无法解决问题。

这是 git 中的错误吗?我做错了吗?无论如何,我看不到强制合并,我还能做什么?是否必须删除并重新添加该文件,从而破坏该文件的更改历史记录?

编辑:到目前为止,似乎唯一的解决方案(保留文件历史记录并且不需要通过重写项目历史记录来破坏旧版本)是将重命名分成两个提交,然后要求合并此分支的任何人手动合并两次。

ent*_*erd -1

我使用 Mac OSX,并且对于我的大部分 Git 工作,我使用Atlassian 的 SourceTree。我只是尝试通过右键单击要重命名的未暂存文件,选择“移动”选项,然后重命名该文件并将其保留在当前位置来重命名那里的文件。这对我有用。我希望这有帮助。评论任何后续问题。

编辑:根据评论请求添加结果diskutil info /:BELC02NF206G3QN:〜jthoms $ diskutil信息/设备标识符:disk1设备节点:/dev/disk1整体部分:disk1设备/媒体名称:Macintosh HD

Volume Name:              Macintosh HD

Mounted:                  Yes
Mount Point:              /

File System Personality:  Journaled HFS+
Type (Bundle):            hfs
Name (User Visible):      Mac OS Extended (Journaled)
Journal:                  Journal size 24576 KB at offset 0x19502000
Owners:                   Enabled

Content (IOContent):      Apple_HFS
OS Can Be Installed:      Yes
Recovery Disk:            disk0s3
Media Type:               Generic
Protocol:                 PCI
SMART Status:             Not Supported
Volume UUID:              D2FB2CB7-9CA8-38D1-9116-AA88AFC39748
Disk / Partition UUID:    01D2D5C8-8300-4FE6-9ED5-07C5D4C0879D

Total Size:               249.8 GB (249795969024 Bytes) (exactly 487882752 512-Byte-Units)
Volume Free Space:        27.0 GB (27011723264 Bytes) (exactly 52757272 512-Byte-Units)
Device Block Size:        512 Bytes
Allocation Block Size:    4096 Bytes

Read-Only Media:          No
Read-Only Volume:         No
Ejectable:                No

Whole:                    Yes
Internal:                 Yes
Solid State:              Yes
OS 9 Drivers:             No
Low Level Format:         Not supported

This disk is a Core Storage Logical Volume (LV).  Core Storage Information:
LV UUID:                  01D2D5C8-8300-4FE6-9ED5-07C5D4C0879D
LVF UUID:                 AC10903C-43BB-403E-BD90-F7BF785DF8AC
LVG UUID:                 B0718DFB-82C0-402C-836E-DD3B32E5EEDC
Fusion Drive:             No
Encrypted:                Yes
Run Code Online (Sandbox Code Playgroud)