我创建了一个包含文件名大小写更改的补丁:
git mv -f confvars.sh ConfVars.sh
git commit -am 'test filename case change'
git format-patch -M -1 HEAD
但是当我尝试应用该补丁时,我收到错误:
git apply 0001-test-filename-case-change.patch
> error: ConfVars.sh: already exists in working directory
如何在不抛出错误的情况下应用此补丁?
**编辑**
为了澄清上面的例子:当应用补丁时,文件ConfVars.sh不存在,文件confvars.sh确实存在我希望被重命名,而是显示上述错误。
答案 0 :(得分:2)
这似乎是git-apply
中的一个错误,它无法处理不区分大小写的文件系统上的大小写更改重命名。不幸的是,即使补丁包含内容的添加和删除,而不仅仅是重命名,也是如此。 (因此将-M
标志省略到git-format-patch
是没有用的。)
根据您所需的疼痛程度,您似乎有三种选择:
TEMPORARY-FILE-CHANGE-ME
),然后在应用补丁后将文件重命名为您想要的文件答案 1 :(得分:0)
如果运行的是Windows 10(> = 1803,2018年4月),则可以通过键入以下命令来启用NTFS区分大小写(可能需要管理员权限):
fsutil.exe file setCaseSensitiveInfo C:\SampleFolder enable
现在git apply命令应该可以使用了。
备注:现有子文件夹不受影响。