"当git add`操作时,不会添加文件别名'samefile'('SameFile'已存在于索引中)

nai*_*231 19 git

我下载了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)
Run Code Online (Sandbox Code Playgroud)

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

即使我尝试git add --ignore-errors .,它也不起作用.它刚刚停止而没有忽略这个错误.谁知道解决方案?

Int*_*ted 37

编辑.git/config将ignorecase设置为false

[core]
  ignorecase = false
Run Code Online (Sandbox Code Playgroud)

可以全局设置

$ git config --global core.ignorecase false
Run Code Online (Sandbox Code Playgroud)

  • 或类似地通过命令行更新本地仓库:`$ git config --local core.ignorecase false` (5认同)
  • 得到它了。我不得不按照https://apple.stackexchange.com/questions/51346/how-do-i-rename-a-file-in-git-that-将它们重命名为荒谬的东西,提交,正确命名,提交。仅因情况而异 (3认同)

Syy*_*oor 17

使用

git rm --cached <file>
Run Code Online (Sandbox Code Playgroud)

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

我建议在执行此操作之前备份您的项目。


San*_*mar 12

事实上,我犯了这样的错误是我自己的错误。

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

  1. 更改“文件”名称的大小写并将“1”添加到末尾(或另一个符号)阶段(不提交)=结果“File1” - 重命名文件***
  2. 从最后阶段删除“1”(不提交)=结果“文件” - 重命名文件(现在仅大写)
  3. 现在请提交。

或者试试这个

$ git config --local core.ignorecase false 

Run Code Online (Sandbox Code Playgroud)

参考