.gitignore不忽略node_modules

Rim*_*Dey 6 git

即使将.gitignore文件添加到.git存储库的根目录后,我也无法使git忽略该node_modules目录.

尚未添加文件供Git跟踪.

我已经经历了早期的堆栈溢出问题,并且还尝试在第一行添加注释行,因为显然Git没有读取该文件的第一行,但它仍然无效.我也尝试使用以下命令,但没有用:

git rm --cached -r .
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我吗?内容.gitignore:

#first line
node_modules/
Run Code Online (Sandbox Code Playgroud)

Mad*_*ams 12

如果一切都失败了,你可能想尝试一下。我遇到了同样的问题,但没有任何效果。

删除您的node_modules文件夹。将更改推送到 github(如果您需要从存储库中删除 node_modules 文件夹)确保 .gitignore 文件中有 node_modules/ 行运行 npm install。再推一下。

我在 Visual Studio Code 下工作,注意到在运行 npm install 之前必须创建 gitignore 文件。不知道为什么,但它修复了我的情况。


Sto*_*ica 10

即使将 .gitignore 文件添加到 .git 存储库的根目录后,我也无法让 git 忽略 node_modules 目录。

.gitignore文件应放置在工作树的根目录(也称为项目的根目录)中,该.git目录位于目录的正上方。在.git目录中,该文件无效。

这是有道理的,因为通常您希望将此文件置于版本控制之下,以便与项目的所有开发人员共享被忽略文件的列表。并且只有工作树内部的文件,外部的文件.git处于版本控制之下,该.git目录用于Git内部存储。

(如果您只想在本地忽略模式,而不添加到版本控制,您可以通过在.git/info/exclude.

[...] 并且还尝试在第一行添加注释行,因为显然 Git 没有读取该文件的第一行

作为记录,它也读取了第一行,.gitignore.

  • 像老板一样回答。到处寻找有关如何构建 .gitignore 以及它应该在哪里的信息。每个人都说,“只做一个`.gitignore`”,但没有人说它的精确性……我们知道这些电脑花式裤子机器是由精确性制造的……;)+1 表示全面的令人敬畏。 (4认同)
  • 如果您已经开始对 node_modules 进行版本控制,请记住 `git rm --cached <files>`,这将从缓存中删除它们并开始读取新的/更新的 `.gitignore` (4认同)

小智 7

我通过删除文件名解决了问题,.gitignore并使其成为一个不可见的文件,分别是一个点文件,就像命名文件.gitignore并保留表达式一样

node_modules/

在那个文件中,这样就可以了,现在 git 最终忽略了 node-modules 目录。不确切知道为什么这有效,但至少确实如此。

  • 无法理解你做了什么 (11认同)

小智 5

我不知道这是否会对任何人有所帮助,但我在 PS 中使用 echo "" > .gitignore 创建了我的 .gitignore 文件,因此编码设置为 UTF-16LE 而不是 UTF-8。这导致 .gitignore 无法正常工作。

  • 好吧,但是我们如何改变这个呢?该解决方案只是解释了一个潜在的问题,但仍然没有提供解决方案。这就像说,你的车发动机缸体中的火花塞有问题,然后立即走出房间。 (2认同)

Cur*_*s M 5

我删除了我的node_modules文件夹并提交了我的更改。然后我复制了 .gitignore 文件的内容并将其删除。重新创建文件,粘贴回剪贴板内容并运行npm i。解决了这个问题。我猜测,如果您在虚拟机或远程桌面上工作并使用 Windows,而不是将存储库带到 Mac 上,则可能会导致如上所述的编码错误。

简而言之:

复制 .gitignore 内容

删除.gitignore

重新创建.gitignore

粘贴到剪贴板。