development
分支,文件Config.json
。new_development
,我将Config.json
重命名为config.json
并提交。development
以查看该分支中的某些内容。没错。new_development
继续处理新内容。它显示错误:错误:以下未跟踪的工作树文件将被checkout覆盖:
Config.json
请在切换分支前移动或移除它们。
中止
该文件实际上是git。
我有这个git配置:
[core]
ignorecase = false
当相同的文件具有不同的大小写时,如何使分支切换工作?
答案 0 :(得分:2)
当相同的文件具有不同的大小写时,如何使分支切换工作?
将core.ignoreCase
更改回true
。
您使用的是案例不敏感的文件系统; git使用core.ignoreCase
设置来指示。在您创建存储库时(通过git init
或git clone
)配置它:git查看您的文件系统以确定它是否区分大小写,并缓存该信息(在{{1}中)设置)这样就不必为每个操作执行此查找。
这不是一个供您更改的设置。
使用core.ignoreCase
,在案例不敏感的文件系统上:
core.ignoreCase = false
这是因为我告诉git我的文件系统 区分大小写。它查看了我要检查的树,发现在我当前的% git ls-tree HEAD
100644 blob 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 foo
% git ls-tree branch
100644 blob bcc9cdfd113753edf279e92afd622b0f3bb05fbc FOO
% git checkout branch
error: The following untracked working tree files would be overwritten by checkout:
FOO
Please move or remove them before you switch branches.
Aborting
树中有一个名为FOO
的文件不,然后在磁盘上查找查看是否存在具有相同名称的未跟踪工作文件。它HEAD
文件stats
(实际上是文件FOO
,因为我们在不区分大小写的文件系统上)并且意识到你在工作目录中有一个未跟踪的文件。
当然,除此之外,你没有。您有文件foo
。
如果我更正了,设置foo
以反映我的文件系统的实际情况,那么我可以正确切换分支:
core.ignoreCase