【问题标题】:"Will not add file alias 'samefile' ('SameFile' already exists in index)" when `git add` operation`git add`操作时“不会添加文件别名'samefile'('SameFile'已存在于索引中)”
【发布时间】:2021-11-30 15:27:37
【问题描述】:

我下载了linux的内核源码,想git add他们。

当我git add . 时,git 开始添加它们。但很快它就会返回一个错误:

fatal: Will not add file alias 'include/linux/netfilter/xt_connmark.h' ('include/linux/netfilter/xt_CONNMARK.h' already exists in index)

这很奇怪,xt_connmark.hxt_CONNMARK.h 完全不同,为什么它会抱怨这个错误?这些情况也发生在其他文件夹中。我不能单独更改他们的名字来解决这个问题。

即使我尝试git add --ignore-errors .,它也不起作用。它只是停止而没有忽略此错误。有谁知道解决办法吗?

【问题讨论】:

  • git config --get core.ignorecase 返回什么?
  • 我知道你的答案!因为我设置了ignore case,所以git认为它们是同一个文件,对吧?
  • 是的,没错。
  • @naive231 你在运行什么操作系统? Windows 和(使用默认设置)Mac 文件系统不区分大小写。
  • 我的操作系统是ubuntu,这个问题已经解决了,感谢关心。

标签: git


【解决方案1】:

编辑 .git/config 将忽略大小写设置为 false

[core]
  ignorecase = false

可以全局设置

$ git config --global core.ignorecase false

【讨论】:

  • 我运行了您的全局修复程序,重新启动了终端并进行了检查。 git config --get core.ignorecase 现在返回 false。但问题依然存在。
  • 知道了。我不得不将它们重命名为无意义的东西,提交,正确命名,提交,按照apple.stackexchange.com/questions/51346/…
  • 或类似于通过命令行更新本地仓库:$ git config --local core.ignorecase false
【解决方案2】:

使用

git rm --cached <file>

这将从索引中完全删除文件的内容,但将其保留在工作目录中。提交时,文件将从 HEAD 提交中删除。

我建议在这样做之前备份您的项目。

【讨论】:

    【解决方案3】:

    其实是我自己犯了这样的错误。

    首先,我用小写字母创建文件名,后来我将文件名改为大写字母这是git不跟踪

    1. 更改“文件”名称的大小写并在末尾添加“1”(或其他符号) 阶段(无提交)= 结果“File1” - 重命名文件
    2. 去掉末尾的“1” Stage (without commit) = result "File" - 重命名文件(现在只有大写)
    3. 现在提交。

    也试试这个 - $ git config --local core.ignorecase false

    Reference

    【讨论】:

      猜你喜欢
      • 2019-07-19
      • 2015-01-23
      • 2014-09-16
      • 2018-05-14
      • 1970-01-01
      • 2023-04-02
      • 2015-11-14
      • 2015-07-14
      • 2018-12-17
      相关资源
      最近更新 更多