有人可以告诉我git中文件的索引已删除是什么意思吗?这些文件在我的VS Code中标记为红色,但是我仍然可以修改文件并将更改推送到将反映这些更改的远程存储库中。我认为当我使用“ git rm --cached”命令清除git中的缓存时,所有事情都发生了。我不小心将node_modules文件夹推到了仓库中。
newsatan 回答:git中文件的索引已在Git中删除
在这种情况下,听起来好像您已从索引中删除了所有文件。 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
)。