文件名大小写改变时如何切换分支?

时间:2018-04-30 07:45:05

标签: git

  1. 我有一个development分支,文件Config.json
  2. 我正在创建一个新分支new_development,我将Config.json重命名为config.json并提交。
  3. 我切换回development以查看该分支中的某些内容。没错。
  4. 我切换到new_development继续处理新内容。它显示错误:
  5.   

    错误:以下未跟踪的工作树文件将被checkout覆盖:

       Config.json
    
         

    请在切换分支前移动或移除它们。

         

    中止

    该文件实际上是git。

    我有这个git配置:

    [core]
        ignorecase = false
    

    当相同的文件具有不同的大小写时,如何使分支切换工作?

1 个答案:

答案 0 :(得分:2)

  

当相同的文件具有不同的大小写时,如何使分支切换工作?

core.ignoreCase更改回true

您使用的是案例不敏感的文件系统; git使用core.ignoreCase设置来指示。在您创建存储库时(通过git initgit 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
相关问题