问题复现

1、创建一个TEST文件夹,TEST文件夹下有一个test.js文件。

image

2、将这个修改推送到gitee仓库上

image

3、修改本地文件夹的名字大小写,从TEST,修改为Test。

image

这个时候就出现了问题,git status命令表示,没有任何修改:

image

那么问题来了,导致这个问题的原因是什么?我们又该怎么修改gitee仓库上的文件夹的大小写呢?

原因分析

导致整个问题的原因是,window操作系统的文件夹包括文件,都是不区分大小写的,如下图:

image

我在window操作系统中,创建TEST文件夹之后,想要再创建一个Test文件夹,却被系统警告文件夹重名。

文件也一样不区分大小写。如下图:

image

而在linux系统中,文件夹和文件都是区分大小写的。

那么这样就会出现一个很有趣的现象。

有趣的现象

修改git配置,让git能够识别文件夹和文件名的大小写。

git config core.ignorecase false

然后我在本地,手动删除掉TEST文件夹和test.js,并创建一个Test文件夹和test.js,推送到远程仓库。

image

现象出现了,远程仓库中的TEST文件夹不仅没有删除,而且还多了一个Test文件夹,两个文件夹同时存在!

但是,可以看见我的本地仓库是不存在TEST文件夹的,只有Test文件夹,如下图:

image

如何解决大小写问题?

那么如何解决这个问题呢?

按照如下步骤操作:

  • 第一步,修改git配置,让git能够识别文件夹和文件名的大小写。

    • git config core.ignorecase false
      
  • 第二步,修改文件夹或文件名,比如说这里我将TEST修改为Test,然后提交推送到远程库

  • 第三步,发现有趣的现象,远程库上TEST和Test文件夹同时存在,这个时候我们在本地删除掉Test文件夹,就会惊奇的发现下图:

    • image

    • 明明只删除了Test文件夹以及它下面的文件,但是git却检测到了TEST文件夹和Test文件夹的同时删除。

  • 第四步,只将删除TEST文件夹的更改推送到远程库,取消Test文件夹的删除。

    • image

    • image

    • 如上图,远程库中的TEST文件夹成功改名为Test文件夹了。

  • 第五步,将git配置还原回去,否则会引起一些其他的问题。

    • git config core.ignorecase true
      

原文地址:http://www.cnblogs.com/luckest/p/16869051.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性