问题描述:在远程仓库中保存有文件p1,现希望将p1重命名为P1,直接在本地利用右键->重命名的方法进行修改,修改后无法进行提交,git bash 显示On branch master Your branch is up to date with ‘origin/master’. 查询资料后发现是由于Git默认大小写不敏感,键入如下命令将Git修改为大小写敏感git config core.ignorecase false
,再次提交成功并推送到远程仓库,此时远程仓库出现了P1和p1两个文件,并不会像我们所预期的那样变为一个P1。此后,对P1或p1进行修改,commit时都会失败,其他操作也会出现各种错误。直接将仓库拉去到本地,虽然远程仓库有P1和p1,但本地会只出现一个P1而没有p1。
问题原因:由于Git默认大小写不敏感,因此直接修改后提交时Git会将p1和P1识别为相同文件,认为没有发生修改。将Git修改为大小写敏感后,再次提交就会使p1被识别为新文件,提交成功。从既有p1又有P1的仓库中直接拉取,由于Windows大小写不敏感,只会保留P1。
ps:由于本人初学git,对为什么将Git设置为大小写敏感后提交重名的文件(p1->P1)会使得二者共存尚不清楚。
解决方法:首先应该使用git reset
返回上一个还未重命名的版本,不要使用鼠标右键->重命名的方法进行重命名,而应该使用git mv [old name] [new name]
进行重命名,提交推送后p1就会变为P1,不会出现二者同时存在的问题,也不会出现无法提交和推送以及由于Windows大小写不敏感引发的后续问题。
Git和Windows的大小写不敏感产生的问题
最新推荐文章于 2024-04-24 11:14:09 发布