被文件名大小写的问题搞晕了

讨论 未结 6 51
MajestySolor
MajestySolor 会员 2022年6月27日 05:28 发表
<p>首先我的这个仓库的本地文件在 windows 系统上,所以是对大小写不敏感的 </p> <p>因为陆续有好几个人加过东西,所以文件名没有统一规范,有的是全小写,有的是驼峰大小写,还有些文件的后缀名是大写 </p> <p>然后最近我开了个新分支准备统一整理一下文件结构和文件名,把所有文件名和后缀名都改成了小写 </p> <p>比如原来 MyFile.css 改成了 myfile.css ,logo.PNG 改成了 logo.png </p> <p>这些改动提交到新分支以后我无法切换回主分支了,要求我解决冲突 </p> <p>我的 git config 已经设置了大小写敏感了 </p> <p>然后我只能用笨办法,先删除 MyFile.css 提交,然后新建 myfile.css 再提交,确保追踪指向的文件是 myfile.css 而不是 MyFile.css </p> <p>那么问题来了,这种情况正确的做法是什么</p>
收藏(0)  分享
相关标签: 灌水交流
注意:本文归作者所有,未经作者允许,不得转载
6个回复
  • wenzichel
    2022年6月27日 06:28
    所以现在我们的文件名都“使用 kebab-case ,后缀为小写”的方式!
    0 0
  • learnshare
    2022年6月27日 06:58
    使用 Git 时,要记得启用区分大小写
    0 0
  • simonhunter
    2022年6月27日 07:59
    有幸被大小写的问题坑过……当时是修改了大小写名字后,远程仓库中存在两份文件。 git clone 的时候 core.ignorecase 会根据系统设置自动设置,Windows 下默认是 true ,如果修改文件名大小写后,设置改为 false ,会出现改名后的文件的 untrack files ,如果提交了就出事了,远程会看到有大写文件名和小写文件名两份文件。 最好的方法就还是用 git mv 去重命名文件名吧,如果已经是远程仓库存在两份文件的情况,比如 foo.js 和 Foo.js ,这时候用 git mv 会提示文件已存在,可以先把目标文件改成中间名,比如 foo.js.tmp ,然后删除 Foo.js ,再将 foo.js.tmp 改为 foo.js ,然后提交。其他人同步的时候会发现文件被删除,但实际上文件是被执行了一个未提交的 commit ,把 commit 还原即可。
    0 0
  • zhuweiyou
    2022年6月27日 07:59
    一般来说我都是全小写连词的, 如果你要修改已有的应该用 git mv 命令.不需要删掉再提交. tsconfig.json 里面有一个 forceConsistentCasingInFileNames 字段,可以开启.这样如果引用了大小写不正确的文件会报错.
    0 0
  • sutra
    2022年6月27日 09:28
    换成大小写敏感的文件系统,一劳永逸。(狗头
    0 0