在 Git 中更改文件名的大小写
我正在尝试重命名文件以使其具有与以前不同的大小写:
git mv src/collision/b2AABB.js src/collision/B2AABB.js
fatal: destination exists, source=src/collision/b2AABB.js, destination=src/collision/B2AABB.js
正如你所看到的,Git 对此非常不满。我也尝试使用普通的旧mv
命令重命名,但 Git 没有选择重命名(作为重命名 或 作为新的未跟踪文件)。
如何更改文件以具有相同名称的不同大小写?我在 Mac OS X v10.7.3 (Lion) 和 Git 1.7.9.1 上使用Z
shell (zsh) 4.3.15。
-
从 Git 2.0.1(2014 年 6 月 25 日)开始, a
git mv
只能在不区分大小写的 OS 上工作。请参阅David Turner ( )的提交
baa37bf。dturner-tw
mv
:允许重命名以修复不区分大小写的文件系统上的大小写”
git mv hello.txt Hello.txt
” 在不区分大小写的文件系统上总是会触发 ”destination already exists
” 错误,因为这两个名称从文件系统的角度来看是指同一个路径,并且需要用户--force
在更正索引中记录的路径的大小写时给出 “
“下一次提交。检测这种情况并允许它而不需要“
--force
”。git mv hello.txt Hello.txt
只是工作(不再--force
需要)。
另一种选择是:
git config --global core.ignorecase false
并直接重命名文件;git 添加并提交。
它确实在 CMD 中工作。它可能会在 git bash(在 Windows 上)会话中失败请参阅:
假设您要将 dir/mypath 重命名为 dir/myPath:
git mv dir/mypath dir/myPath
但它没有报告:
Rename from 'dir/mypath' to 'dir/mypath' failed. Should I try again? (y/n)
问题是 bash 已经默默地替换了你的命令行
dir/myPath
,dir/mypath
因为它检测到这样的路径存在不同的大小写。解决方案是使用中间移动操作:
git mv dir/mypath dir/mypath_temp git mv dir/mypath_temp dir/myPath
正如在评论中指出的那样,如果您的本地存储库本身具有该设置:
git config --local core.ignorecase false
-
如何在 Git 中提交仅区分大小写的文件名更改?
2022-03-22 关注 0 浏览35 1答案
-
UNIX/Linux系统中的文件名不区分大小写。( )
2022-05-23 关注 0 浏览15 1答案
-
Linux上的Codeigniter类和文件名区分大小写(centos)
2021-02-01 关注 0 浏览112 1答案
-
git mv 并且只更改目录的大小写
2022-05-26 关注 0 浏览10 1答案
-
在 Windows 上更改文件的大小写?
2022-05-26 关注 0 浏览11 1答案
-
我更改了目录的大小写,Git 似乎没有接受它
2022-07-28 关注 0 浏览12 1答案
-
在 Eclipse 中更改字符串的大小写
2022-07-28 关注 0 浏览13 1答案
-
HTML的标签区分大小写吗?属性名区分大小写吗?
2021-01-11 关注 0 浏览186 0答案
-
在Ubuntu的所有子目录中将文件名更改为小写
2021-02-01 关注 0 浏览73 1答案
-
将CuteFTP站点管理器中xy文件夹下标识名为2的站点设置为文件名“保持大小写”。
2022-05-10 关注 0 浏览19 1答案