由于区分大小写,无法将文件添加到git中的暂存区域

时间:2013-12-05 00:01:02

标签: git staging atlassian-sourcetree

我在工作副本下更改了文件列表,但文件保留在非暂存区域。我使用SourceTree,每次将文件拖放到临时区域时,它们都不会移动!

我尝试过使用:

git add -A

但是我没有运气,之后如果我git status文件保留在未分区的区域。

有趣的是,我在系统上的另一个文件夹中执行了一个干净的克隆,并且文件自动显示已更改!

运行git状态显示:

git status --short
 M resources/file1
 M Resources/file1
 M resources/file2
 M Resources/file2

1 个答案:

答案 0 :(得分:3)

看起来你要么改变了一些已经被git跟踪的文件的路径,而git也没有那么多享受它,或者你或者有权访问你的repo的人使用了git配置的ignorecase标志。 / p>

尝试在存储库的根目录下运行它,看看会发生什么:

cat .git/config | grep "ignorecase"

This is false by default but can be changed to true for systems that are not case sensitive.

从文档中我认为没有人可以更改已经克隆的工作副本的标志,但是在执行新克隆时,标志可能设置为true。

尝试查看您的干净克隆是否为ignorecase标志输出相同的值,并且它是否具有正确的文件夹名称(大写),如果是,请尝试将更改从旧的工作副本应用到此一个,所以启动你可以从那里开始工作,我在git中经历了移动文件/文件夹或重命名时的不稳定行为。

在一个或许更极端的解决方案上,做一个愚蠢的提交将文件夹重命名为其他地方,你对文件夹的名称引入了更大的更改,而不只是大写字母,然后再次提交原始名称,但这次大写

通知您的存储库的其他用户,他们可能必须执行干净的克隆以避免出现问题。