在 vscode 中从 git 中删除 node_modules

Posted

技术标签:

【中文标题】在 vscode 中从 git 中删除 node_modules【英文标题】:Remove node_modules from git in vscode 【发布时间】:2018-11-13 12:12:16 【问题描述】:

在 git、vscode 终端中删除 node_modules 时出错

 git rm -r --cached node_modules

错误:

致命错误:pathspec 'node_modules' 不匹配任何文件

【问题讨论】:

我不明白。如果他们被忽略并且没有被跟踪,那么问题是什么? 在 vscode 中无法从 git 中删除 node_modules,但一切看起来都很清晰 你一直在说“从 vscode 中的 git 中删除”。但听起来文件不是“在 git 中”?如果您不希望它们在 vscode 中,为什么不直接删除该文件夹? 如果我们让您感到困惑,或许可以在问题中附上屏幕截图? 你是什么意思“git评论没有帮助”? 【参考方案1】:
    制作 .gitignore 文件。 在 gitignore 文件中添加 node_modules/ 行 运行此命令 git rm -r --cached . git add . git commit -m "remove gitignore files" git push

【讨论】:

啊哈!关键是 git rm -r --cached . 这就是我忘记的。 不要忘记git rm -r --cached . 中的.,如果你不写点它是行不通的。可能很难看到。 解决我的问题。谢谢!【参考方案2】:

我遇到了同样的问题。执行以下步骤 -

制作 .gitignore 文件。

在终端中运行以下命令

git rm -r --cached node_modules

git commit -am "node_modules be gone!"

git push origin master

就是这样!

你可以走了!

【讨论】:

感谢您的回答。你能帮我理解一下步骤吗?【参考方案3】:

在您的项目目录中创建.gitignore 文件。

.gitignore 文件将如下所示

/Folder_name

在终端或等效命令中输入以下命令:

git rm -r --cached Folder_name (remove the directory from git but not delete it from the filesystem/locally)

git commit -m "remove unused directory"

git push origin <your-git-branch> (can be master or develop or others)

【讨论】:

【参考方案4】:

创建.gitignore 文件并在其中添加node_modules

touch .gitignore && echo "node_modules" >> .gitignore

删除缓存数据:

git rm -r --cached .

更新你的最后一次提交:

git add .

git commit --amend --no-edit

git push --force-with-lease

【讨论】:

【参考方案5】:

该错误表示node_modules 目录不受 git 版本控制。有两种可能:

它们尚未添加到Git。尝试运行git status 命令,查看它们是否显示为untracked 文件。

它已被添加到您的gitignore 文件中。要列出所有被忽略的文件,请尝试以下命令:git ls-files --others -i --exclude-standard

【讨论】:

【参考方案6】:

一旦 git 开始跟踪文件或文件夹,即使您将其添加到 .gitignore 也不会停止

您需要将其从 .git 存储库中删除。我专门使用本地的,通常位于项目源的根目录。

截至今天 20200408,似乎没有鼠标单击方法可以从 git 中删除烦人的文件/文件夹。

您必须使用终端。

Ctrl-J 然后选择 Terminal 选项卡

或从 VSCode 菜单中选择 Terminal / New Terminal

然后发出类似下面的命令

git  rm -r --cached  www/index.html

以下排除

 www/ 

已经在我的 .gitignore 文件中了。

在您的情况下,您需要添加“癌症文件夹”:)

node_modules/

PS:简单的事情变得不必要的困难,我想知道为什么?

下面是我从不使用的无数 Git 命令的垃圾。享受吧!

【讨论】:

【参考方案7】:

上面的答案很棒。它们不是你一直记得的东西。因此,每次需要执行此操作时,您都必须重新在线查看。

这是使用您已经熟悉的 git 命令删除 node_modules 的快速方法。

首先创建一个.gitignore 文件并将/node_modules 添加到其中。 然后删除node_modules 文件夹并提交您的更改。

Git 会将此解释为文件夹删除,并将从 Github 或您使用的任何源代码控制中删除 git push 上的 node_modules 文件夹。

然后运行npm iyarn install 重新创建node_module package.json 会自动在您的开发环境中。

【讨论】:

【参考方案8】:

请注意,当前接受的答案不会完全删除它,它将保留在历史记录中。如果您希望它从您的历史记录中完全删除,即从该目录所在的所有过去提交中,您可以使用以下任一方式:

git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch node_modules" HEAD

(在此处了解更多信息:7.6 Git Tools - Rewriting History)

或者,您可以使用名为 filter repo 的第三方插件 - 这确实也是 Git 官方推荐的方法:

git filter-repo --path node_modules --invert-paths

(在此处阅读有关如何使用的更多信息:Installation 和 Cheat Sheet 和 Documentation)

然而,在这两种情况下,请注意您正在重写历史,这在团队中工作时可能是一场噩梦......。所以要么在你自己的本地分支/环境中使用它,要么确保你知道没有人有更好的选择,并让你所有的伙伴事先知道。

【讨论】:

这正是我想要的,谢谢它的帮助。【参考方案9】:

您可以从 git 中删除文件夹(使用命令行或您的 IDE)。 如果你想从 git 中删除 node_modules

    node_modules 重命名为node_modulesx 提交 将node_modulesx 重命名为node_modulesnode_modules 添加到.gitignore(如果需要,创建.gitignore 文件) 提交

现在您的 node_modules 文件夹仍然存在,但不会再提交给 git。

【讨论】:

以上是关于在 vscode 中从 git 中删除 node_modules的主要内容,如果未能解决你的问题,请参考以下文章

在 VS Code 中从 JS 文件中删除 [ts] 错误

使用vscode中的git不小心删除文件,怎么恢复

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

Mac 下搭建环境 homebrew/git/node.js/npm/vsCode...

vscode 中搭建Vue.js

在颤动中从地图<日期时间,列表>中删除项目