Can';由于区分大小写,无法将文件添加到git中的暂存区域
我的工作副本下有一个更改的文件列表,但文件保留在未老化区域。我使用SourceTree,每次我将文件拖放到暂存区域时,它们都不会移动 我试过使用:Can';由于区分大小写,无法将文件添加到git中的暂存区域,git,staging,atlassian-sourcetree,Git,Staging,Atlassian Sourcetree,我的工作副本下有一个更改的文件列表,但文件保留在未老化区域。我使用SourceTree,每次我将文件拖放到暂存区域时,它们都不会移动 我试过使用: git add -A 但是我没有运气,在那之后,如果我做了git status,文件将保留在未老化的区域 有趣的是,我对系统上的另一个文件夹执行了一个干净的克隆,文件会自动显示为已更改 运行git状态显示: git status --short M resources/file1 M Resources/file1 M resources/f
git add -A
但是我没有运气,在那之后,如果我做了git status
,文件将保留在未老化的区域
有趣的是,我对系统上的另一个文件夹执行了一个干净的克隆,文件会自动显示为已更改
运行git状态显示:
git status --short
M resources/file1
M Resources/file1
M resources/file2
M Resources/file2
看起来要么是您更改了git已经跟踪的某些文件的路径,而git对此不太满意,要么是您或有权访问您的repo的人对git配置的ignorecase标志进行了修改 尝试在存储库的根目录下运行此操作,并查看结果:
cat.git/config | grep“ignorecase”
从文档中,我认为只有您才能更改已克隆工作副本的标志,但在执行新克隆时,标志可能会设置为true
尝试查看您的干净克隆是否为ignorecase标志输出相同的值,以及它是否具有正确的文件夹名称(大写),如果是,请尝试将您的更改从较旧的工作副本应用到该副本,以便从那里开始工作,在git中移动文件/文件夹或重命名文件/文件夹时,我遇到了不稳定的行为
在一个可能更极端的解决方案中,进行一次愚蠢的提交,将文件夹重命名为其他名称,在这里对文件夹的名称进行更大的更改,而不仅仅是大写字母,然后再次提交,将原始名称改为大写
通知您的存储库的其他用户,他们可能还必须执行干净的克隆以避免出现问题。存储库顶部文件夹中是否有.gitignore文件?是的,我在存储库的根目录中有.gitignore文件,但我只是仔细检查了一下,没有一个条目适用于我遇到问题的文件。请尝试执行一个测试,然后将文件添加到暂存区域,看看是否有效。git status--short的输出是什么?同时查看“Resources/file1”和“Resources/file1”强烈指出了一个区分大小写的问题-请参阅@edgar的回答我必须将我的更改复制到新的克隆上,但补丁不起作用,我必须手动执行,但它起作用了。谢谢