当git中的文件索引被删除时,这意味着什么?在我的VS Code中,这些文件标为红色,但我仍然可以修改文件并将更改推送到远程存储库中,这些更改将反映在其中。我认为这一切都发生在我使用“git rm --cached .”命令清除git缓存时。我不小心将node_modules文件夹推送到repo中。
当git中的文件索引被删除时,这意味着什么?在我的VS Code中,这些文件标为红色,但我仍然可以修改文件并将更改推送到远程存储库中,这些更改将反映在其中。我认为这一切都发生在我使用“git rm --cached .”命令清除git缓存时。我不小心将node_modules文件夹推送到repo中。
在这种情况下,你似乎已经从索引中删除了所有文件。 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
)。