我通过将第一个字母去大写来更改了一些文件名,如name.jpg中的name.jpg。Git无法识别这些更改,我不得不删除这些文件并再次上传。在检查文件名的更改时,Git是否可以区分大小写?我没有对文件本身进行任何更改。
当前回答
在OSX下,为了避免这个问题并避免在不区分大小写的文件系统上开发时出现其他问题,可以使用Disk Utility创建区分大小写虚拟驱动器/磁盘映像。
运行磁盘实用程序,创建新的磁盘映像,并使用以下设置(或根据需要进行更改,但要区分大小写):
确保告诉git它现在在区分大小写的FS上:
git config core.ignorecase false
其他回答
只要您只是重命名文件而不是文件夹,就可以使用gitmv:
git mv -f yOuRfIlEnAmE yourfilename
(在Git2.0.1中进行了修改,上面的咒语中的-f标志是多余的,但在较旧的Git版本中需要。)
将文件Name.jpg重命名为name1.jpg提交删除的文件Name.jpg将文件name1.jpg重命名为name.jpg将添加的文件名.jpg修改为上一次提交git添加名称.jpg修改最后一次提交
有时临时更改Git的大小写敏感度是有用的。
方法#1-更改单个命令的大小写敏感性:
git-c core.ignorecase=true checkout mybranch,关闭单个checkout命令的区分大小写功能。或者更一般地:git-c core.ignorecase=<<true或false>><<command>>。(感谢VonC在评论中提出了这一点。)
方法#2-更改多个命令的大小写敏感性:
要更改设置更长时间(例如,如果在更改回之前需要运行多个命令):
git-config-core.ignorecase(返回当前设置,例如false)。git-config-core.ignorecase<<true或false>>-设置所需的新设置。…运行多个其他命令。。。git-config-core.ignorecase<<false或true>>-将配置值设置回以前的设置。
使用以下命令:
git config --global core.ignorecase false
您可以全局配置git系统,使其对文件和文件夹名称区分大小写。
如果您正在进行更复杂的更改,如目录名大小写更改,您可以在Linux机器上进行更改,因为Linux本身(以及Linux上的git)将名称相同但大小写不同的文件/目录视为完全不同的文件或目录。
因此,如果您在Windows上,您可以使用WSL安装Ubuntu,在那里克隆您的repo,使用VSCode打开克隆的repo目录(使用WSL远程扩展从Windows访问WSL Ubuntu),然后您将能够通过VSCode进行重命名,并使用VSCode git集成提交/推送它们。
推荐文章
- git pull -rebase和git pull -ff-only之间的区别
- GitHub -致命:无法读取用户名https://github.com':没有这样的文件或目录
- 撤消git平分错误
- 使用.gitconfig配置diff工具
- 如何配置Mac OS X术语,使git有颜色?
- Visual Studio Code: .git文件夹/文件隐藏
- “node_modules”文件夹应该包含在git存储库中吗
- MySQL中的表名是否区分大小写?
- 为什么git-rebase给了我合并冲突,而我所做的只是压缩提交?
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 如何从远程分支中挑选?
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购