git repo 中的文件都被删除和未跟踪,但它们仍然存在。这怎么可能?

Posted

技术标签:

【中文标题】git repo 中的文件都被删除和未跟踪,但它们仍然存在。这怎么可能?【英文标题】:files in the git repo are both deleted and untracked but they're still there. How is that possible? 【发布时间】:2016-06-24 20:33:09 【问题描述】:

我的仓库中的所有(数百个)文件现在都显示为未跟踪和已删除,尽管我不知道发生了什么?

ls 显示文件在目录中

但目录中的git status . 的文件已删除且未跟踪。几个月来我没有碰过这些文件中的任何一个。此外,文件所在的网站现在也无法正常工作...

【问题讨论】:

它说“要提交的更改”。这意味着这些文件的删除尚未提交。 Spaces in the filenames? 【参考方案1】:

这种情况可能是由您正在使用的 IDE 引起的。可能的情况,AFAIK 可能是这样的:

1- 您已从 IDE 中删除了四个文件(dashicons.eot、.svg、....),该 IDE 可能有一个 git 插件来跟踪更改的文件。

2- 一段时间后,您更改了这些文件并再次添加了它们,但 IDE git 插件尚未同步,或者您已从 IDE 外部恢复它们。

要查看这些文件中 git 跟踪的最终有效结果是什么,我建议:

git reset <file-name>

取消暂存为&lt;file-name&gt; 提交的更改或只是简单

git reset

这将取消暂存所有使用git add 暂存的文件,无论是在终端中还是通过 IDE 插件。

那么,

git status

我假设您现在应该看到您的文件(破折号)已被修改,而不是被删除

现在您可以再次添加它们并提交您的修改,并且不会对您的存储库应用任何删除,无论是本地还是远程。

【讨论】:

【参考方案2】:

git 状态显示您在删除文件(dashicons.eot、dashicons.svg、dashicons.ttf 和 dashicons.woff)后尚未提交更改。此外,它还显示这些文件未被跟踪。

-

“我已经有几个月没有碰过这些文件了。”

由于您不确定所做的更改,我们建议您在另一个目录中再次clone 项目并使用新目录。

【讨论】:

【参考方案3】:

我在 Mac 上也遇到了同样的问题。为什么会发生我不知道,但是在这个分支上 git pullgit pushgit reset HEAD 之后,它又可以正常工作了。

【讨论】:

以上是关于git repo 中的文件都被删除和未跟踪,但它们仍然存在。这怎么可能?的主要内容,如果未能解决你的问题,请参考以下文章

在 VSCode 中保存文件会删除 git repo 中的所有跟踪文件

Git上下文中的跟踪文件和未跟踪文件是啥?

本地分支在没有明显原因的情况下显示未暂存的更改和未跟踪的文件[重复]

删除 git repo 中的文件夹? [复制]

如何删除git嵌套repo但保留其中一个分支的文件?

终端 Git 跟踪与 VS Code git 跟踪不同步