我创建了一个包含文件名大小写修改的补丁。
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文件确实存在,我希望它能被重命名,但它却显示了上述错误。
这似乎是一个错误 git-apply
其中,它无法处理在不区分大小写的文件系统上的大小写重命名。 不幸的是,即使补丁中包含了对内容的添加和删除,而不仅仅是重命名,也是如此。 (所以省略了 -M
旗帜鲜明 git-format-patch
是无益的)。)
看起来你有三个选择,取决于你想要的痛苦程度。
TEMPORARY-FILE-CHANGE-ME
),然后在应用补丁后将文件改名为你想要的名字。如果您正在运行Windows 10(>= 1803,2018年4月),您可以通过键入以下命令(可能需要管理员权限)启用NTFS大小写敏感性。
fsutil.exe file setCaseSensitiveInfo C:\SampleFolder enable
现在,git apply命令应该可以工作了。
备注 现有的子文件夹不受影响。