Git-大小写的坑

怎么了

20210330半夜出版本,碰到切换英雄语音时,没有关闭上一个英雄语音。检查发现是因为语音文件大小写导致的。直接重命名资源,git并没有产生正确的变动记录,于是便无法修正远程仓库的内容。


怎么解决

原理

  1. 确认git开启了大小写敏感。执行 git config --global core.ignorecase false ,开启全局 *大小写敏感
  2. 用命令重命名文件。
git mv -f [你想要删掉的文件] [你想要留下的问题]
git mv -f a.cs A.cs

实际

  1. 用 everything 列出语音文件夹下的所有文件,复制出所有的路径。
  2. 放到 vscode 中,用 vim 宏命令修改所有音效文件名为小写,并在每行前方加上 git mv -f
  3. 全部复制到命令行里,全部执行。最后 git 有了重命名的变更记录,提交即可。

总结

  1. 中间重命名的时候,想批量处理,因为他们是有规则的,所以必然可以用程序处理,但是对 shell ,python 都不熟悉,没法快速处理,才绕道 everything + vim 。所以还是要学习下这种简单的,随时可以用的工具。
  2. 中间还想在判断字符串是否相同时,忽略大小写,但是这样就热更不了了,因为是写在 C# 层的 。但是 get 到了新知识,StringComparison.Ordinal 的比较效率是最高的。

参考

git 大小写问题 踩坑笔记
C# 字符串比较效率测试

posted @ 2021-03-31 10:03  尼克多摩雄  阅读(185)  评论(0编辑  收藏  举报