Git中一个文件的索引已被删除

3

当git中的文件索引被删除时,这意味着什么?在我的VS Code中,这些文件标为红色,但我仍然可以修改文件并将更改推送到远程存储库中,这些更改将反映在其中。我认为这一切都发生在我使用“git rm --cached .”命令清除git缓存时。我不小心将node_modules文件夹推送到repo中。

1个回答

0

在这种情况下,你似乎已经从索引中删除了所有文件。 git rm --cached . 正是如此。索引保存已准备提交的更改,所以下次提交时,你将删除仓库中的所有文件。

这并不是非常有用,也可能不是你想要做的事情。 git rm --cached 告诉 Git 你应该保留你提到的文件(在这种情况下,当前目录和以下的所有内容)在工作树中,但将它们标记为从 Git 中删除。

现在你已经这样做了,你应该查看哪些文件没有被跟踪,例如你的 node_modules 文件夹。任何你不想 Git 跟踪和提交的文件都应该添加到你的 .gitignore 文件中(例如 node_modules/)。一旦你列出了你希望在 .gitignore 文件中忽略的所有模式,你就需要运行 git add .,这将重新将所有文件添加到索引中。

然后你可以运行git status,确保所有更改都是你想要的。如果你添加了一些你仍然不想要的东西,你可以运行git rm --cached FILE,其中FILE是一个或多个文件或目录,你特别不想提交它们。然后,你可以添加适当的条目到.gitignore中,提到这些路径。
请注意,任何已经在索引中暂存的内容不受.gitignore的影响,因此你需要像上面提到的那样具体地取消暂存它(使用受限制的git rm --cached)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接