我通过将第一个字母去大写来更改了一些文件名,如name.jpg中的name.jpg。Git无法识别这些更改,我不得不删除这些文件并再次上传。在检查文件名的更改时,Git是否可以区分大小写?我没有对文件本身进行任何更改。
当前回答
有时临时更改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的大小写敏感度是有用的。
方法#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>>-将配置值设置回以前的设置。
我在MacOS上多次遇到过这个问题。Git区分大小写,但Mac只保留大小写。
有人提交了一个文件:Foobar.java,几天后决定将其重命名为Foobar.java。当你拉最新的代码时,它失败了。以下未跟踪的工作树文件将被签出覆盖。。。
我所看到的解决这一问题的唯一可靠方法是:
git rm Foobar.java用一条不能错过gitcommit-m'TEMP Commit!!'的消息提交它拉这将弹出一个冲突,迫使您合并冲突-因为您的更改删除了它,但另一个更改重命名了它(因此出现了问题)接受您的更改,即“删除”git rebase—继续现在放下你的解决方法gitrebase-i HEAD~2,放下TEMP COMMIT!!确认文件现在名为FooBar.java
我制作了一个bash脚本,将存储库文件名小写:
function git-lowercase-file {
tmp="tmp-$RANDOM-$1"
git mv -f $1 $tmp
git mv -f $tmp ${1,,}
}
那么你可以这样使用它:
git-lowercase-file Name.jpg
在OSX下,为了避免这个问题并避免在不区分大小写的文件系统上开发时出现其他问题,可以使用Disk Utility创建区分大小写虚拟驱动器/磁盘映像。
运行磁盘实用程序,创建新的磁盘映像,并使用以下设置(或根据需要进行更改,但要区分大小写):
确保告诉git它现在在区分大小写的FS上:
git config core.ignorecase false
修复整个repo上的git文件名大小写:
git rm -r --cached .
git add --all .
git status ##Review that **only** changes staged are renames
## Commit your changes after reviewing:
git commit -a -m "Fixing file name casing"
git push origin master
@Uriahs Victor评论解释:
此命令实际执行的操作是删除git认为仍然存在的文件/文件夹名称。所以它会清除缓存,但将所有内容保留在当前文件夹中您的本地更改),但它会发现其他错误情况文件夹/文件不再存在,因此将在git中显示为已删除地位然后你可以向上推github,它将删除错误案例的文件夹/文件。这个答案有一个图形描述命令的含义。
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- MySQL区分大小写查询
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式