Git 看到重复的修改文件

Git sees duplicated modified file

在我的存储库中有一个文件(总是那个)总是给我带来麻烦。
我正在使用 coffeescript 并使用 grunt 任务生成 js。
好几次git status告诉我这个文件被修改了,需要添加。问题是 git 看到这个文件 duplicated:

好的..所以我尝试使用 git add :/ 添加所有内容,并且添加了所有文件,包括一份 AreaChart.js 的副本,而另一份保持 modified 且未暂存。如果我尝试手动 checkoutadd 它,没有任何反应,它的状态仍然是 modified 和未上演。

这是 git 错误吗?我该如何解决这个问题?

编辑:
实际上 git 看到同一个文件有两个不同的文件名,即 AreaChart.jsAreachart.js.
如果我 ls 我只看到 AreaChart.js (大写 C),因为它应该是。

提示:
如果我添加 AreaChart.js(大写 C)--> git 添加 Areachart.js(小写 c
如果我添加 Areachart.js(小写 c)--> git 添加 Areachart.js(小写 c

EDIT2

  1. 我发现这两个文件都存在于存储库中
  2. 令我惊讶的是我发现我的文件系统 (mac) 不区分大小写,所以如果我 touch testtouch Test 只创建一个文件(或也许两者都有,但我只能看到其中一个)
  3. 输出 git config core.ignorecase 表示 true

仔细再看

AreaChart.js 

Areachart.js

是不同的文件。一个大写C,一个小写c。

由于 Git 区分大小写,而您的文件系统 不区分大小写 ,您在文件系统上只会看到其中一个。如果你只想要 Git 中的一个,你应该删除另一个,使用 git rm --cached Areachart.js,并确保你的更新是通过 git add AreaChart.js.

添加的

在不区分大小写的文件系统上时会感到困惑。尝试:

git mv --force Areachart.js AreaChart.js