首页 > 解决方案 > git reset 后 git unstagged 文件

问题描述

我遇到了 git 的问题。它一直告诉我我有未标记的文件。

即使在之后git reset --hardgit add --all它仍然将文件显示为未标记。

我正在使用android studio4.0

在此处输入图像描述

PS在这里尝试了所有答案,但没有一个对我有用

标签: gitgithub

解决方案


这是文件名问题中区分大小写的问题:如您所见,一旦被指控的文件被命名OnTime_User_Presenter.kt,一旦被命名onTime_user_presenter.kt

这意味着,不知何故,在两个名称共存的 git 存储库中创建了一个提交。

您可以确认 git 已将哪些文件存储为文件列表:

# you should see the two capitalizations in the command's output :
git ls-tree HEAD -- longdir/

您可以搜索git log发生这种情况的时间:

git log --graph --oneline --name-status -- longdir/onTime_user_presenter.kt longdir/OnTime_User_Presenter.kt

解决此问题的一种方法:

  1. 检查您要保留的文件的内容是否正确,
  2. 修复分支的内容(参见下面的命令),
  3. 让每个人都拉出最新的分支,将他们的工作重新建立在预期的分支之上,然后运行下面的重命名命令

确保正确命名最终在您的磁盘和索引上的一种方法是:

git mv <bad_capitalization> foo
git mv foo <good_capitalization>

对于第 2 步,在您要修复的每个分支上,运行上述命令,提交内容并推送到您的中央仓库。

如果您有几个人使用 repo,步骤 3. 很重要,这样文件名混乱的人就不会再次推送错误命名的文件。


推荐阅读