.gitignore不忽略node_modules

时间:2017-02-05 06:59:17

标签: git

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

尚未添加文件供Git跟踪。

我已经完成了早期的堆栈溢出问题,并尝试在第一行添加注释行,因为显然Git没有读取该文件的第一行,但它仍然无法正常工作。我也试过使用以下命令,但没有用:

git rm --cached -r .

有人可以帮帮我吗? .gitignore的内容:

#first line
node_modules/

10 个答案:

答案 0 :(得分:4)

  

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

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

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

(如果您只想在本地忽略模式,而不添加版本控制,则可以通过在.git/info/exclude中定义模式来实现。)

  

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

为了记录,它也会读取第一行,.gitignore中的第一行没什么特别的。

答案 1 :(得分:2)

我通过删除$('html') .append('<h1 class="onLoad">loading...</h1>'); $('body').css('display', 'none') .delay(4000).fadeIn(1000, function() { $('.onLoad').fadeOut(1000); });上的文件名并使其成为一个不可见文件(分别是点文件)来解决该问题,就像命名文件<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> I'm part of the body并保留表达式

  

.gitignore

在该文件中,因此可以正常工作,现在git最终忽略了node-modules目录。确切不知道为什么会这样,但至少可以。

答案 2 :(得分:2)

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

答案 3 :(得分:1)

就我而言,我用这样的引号写了它

functions/node_modules/

代替

I encountered a strange error when executing the systemtap command " ERROR: probe timer.profile registration error"

答案 4 :(得分:1)

就我而言,自从我通过重定向重定向输出通过Powershell创建.gitignore文件以来,通过将文件编码从“ Unicode”转换为“ UTF-8 Without BOM”来解决。

最初,我将以Windows(CRLF)结尾的行更改为Linux(LF),但没有帮助。

答案 5 :(得分:1)

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

删除您的 node_modules 文件夹。 将更改推送到 github(如果您需要从 repo 中删除 node_modules 文件夹) 确保您在 .gitignore 文件中有 node_modules/ 行 运行 npm 安装。 再推。

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

答案 6 :(得分:0)

我的项目结构如下:

project_name
 |
 |__ client
 |      |_ node_modules/
 |
 |__ server

$ sudo nano .gitignore 

Changed # dependencies 
        /node_modules to client/node_modules

$ git add .     /* to add modified gitignore file */
$ git status    /* to observe changes */

答案 7 :(得分:0)

就我而言,我在主目录中创建了两个“ .gitignore”文件,在客户端文件夹中创建了第二个文件。

答案 8 :(得分:0)

确保文件末尾总是有一个新行。如果您在 node_modules/ 声明后忘记了一个,可能对您有所帮助。

答案 9 :(得分:0)

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

简而言之:

复制 .gitignore 内容

删除.gitignore

重新创建.gitignore

粘贴到剪贴板中。