windows - 切换 GIT 分支随机更改文件名大小写
问题描述
我对 GIT 有一个奇怪的问题。
我有一个我正在从事的小项目的 git repo。没有遥控器,这只是为了我自己的工作。直到几天前,我的开发甚至还没有保证任何分支。
我终于需要为一些实验代码创建一个分支。完成后,我只需签出 master 分支以返回我所在的位置。这就是问题开始的地方。
有六个文件在新分支和主分支之间发生变化。每次我切换/签出任一分支(在两者之间切换)时,这六个文件名中的大多数都会更改大小写。
例如,如果文件应该是someCode.py:
- 有时文件名切换到 somecode.py(不正确)
- 有时文件名切换到 someCode.py (正确)
我选择哪个分支都没有关系,每次结果都不一样。哪些文件最终与哪个 CaSe 每次都不同。
我怀疑我最初使用的 VSCode 的 GIT 插件(GIT Graph),但它也发生在包含的 GIT GUI 中,甚至如果我从命令行使用“git switch”也会发生。
我读到了core.ignorecase设置;它被设置为真。我尝试将其设置为 False 并且问题仍然存在。
有谁知道发生了什么?谢谢
细节:
- GIT 2.30.0.windows.2
- 视窗 10
- 文件位于映射的网络驱动器上
- 文件系统为 NTFS
解决方案
Git 本身是区分大小写的,因此您可以有两个不同的文件,分别命名为filename.txt
和FileName.txt
. 在某些操作系统(例如 Linux)上运行良好,而在其他操作系统(例如 Windows)上则不行。请注意,分支名称也是如此;你不能有两个不同的分支,仅在 Windows 上因大小写而异。原因是分支名称作为文件存储在您的驱动器上。
您的问题很可能是有问题的文件在两个分支上具有不同的名称,但仅因大小写而异。如果是这样,请选择您想要的(也许master
),然后在另一个分支上重命名这些文件以完全匹配大小写。如果它们实际上应该是不同的文件,那么不仅仅是通过大小写来更改它们的名称。
另一种可能性是两个(或多个)名称因大小写而异的文件仅存在于同一个分支中,切换分支只会导致问题暴露。请注意,它可能是文件本身,也可能是这些文件路径中的任何目录也可能有不同的大小写。要确定这是否是问题所在,请在 Git Bash 中导航到存储库的根目录并运行以下命令:
git ls-tree -r HEAD | grep -i [filename-without-path]
如果您看到两个或多个具有相同名称但大小写不同的文件,则您已经确定了问题。
推荐阅读
- html - 反应获取错误标识符或字符串文字或预期的数字文字
- java - 从微调器上的项目的值创建视图
- mysql - mariadb(mysql) 慢查询修复
- node.js - 用于登录和注册的微服务模式
- python-2.7 - 通过单击窗口 B 上的按钮关闭窗口 A
- xamarin.forms - 使用 PKCE OAuth 和 .NET API 从 Xamarin Forms 访问 Dropbox - 解决方案
- java - 添加字体未为 acroform 加载正确的 pdfbox
- javascript - 单击链接后关闭下拉菜单并使用过渡
- flutter - 使用 SyncfusionPdf Flutter 进行 Pdf 注释
- android - 如何检查字符串是否以 {SOME_STRING} 开头