我有一个项目包含多个其他项目:
主要项目 小项目1 小项目2
所有包含node_modules文件夹。我想要git忽略文件夹,无论它是从根文件夹开始的位置。在.gitignore中添加如下内容:
*node_modules/*
我有一个项目包含多个其他项目:
主要项目 小项目1 小项目2
所有包含node_modules文件夹。我想要git忽略文件夹,无论它是从根文件夹开始的位置。在.gitignore中添加如下内容:
*node_modules/*
当前回答
编辑-(2022-04-09之前)
在一个新的monorepo设置中,我发现只用这个
node_modules
解决了忽略子目录中所有node_modules的问题,注意前面和后面没有斜杠,这意味着递归。
参考
老路-(2022-04-09之前)
**/node_modules
**用于整个项目中的递归调用
Two consecutive asterisks ** in patterns matched against full pathname may have special meaning: A leading ** followed by a slash means match in all directories. For example, **/foo matches file or directory foo anywhere, the same as pattern foo. **/foo/bar matches file or directory bar anywhere that is directly under directory foo. A trailing /** matches everything inside. For example, abc/** matches all files inside directory abc, relative to the location of the .gitignore file, with infinite depth. A slash followed by two consecutive asterisks then a slash matches zero or more directories. For example, a/\**/b matches a/b, a/x/b, a/x/y/b and so on. Other consecutive asterisks are considered invalid.
为什么这种方法比node_modules/更好
**充当递归模式。它在monorepo项目中很有用,因为你在子目录中有node_modules。**将搜索目录中所有的node_modules,并忽略它们。
参考
其他回答
敌人谁是尝试上述答案,仍然面临的问题
我已经尝试了几乎所有的答案,最终,它解决了我忽略node_modules的问题,但只有在我提交更改之后!
如果你想通过命令行来做,输入echo node_modules/ > .gitignore。你可以通过输入git status来检查git是否在跟踪这个文件夹。如果被跟踪,在git中输入rm -r——cached node_modules。
你也可以用SVN/Tortoise git来做。
只需右击node_modules ->乌龟git ->添加到忽略列表。
这将为你生成. gitignore,你不会再在staging中找到node_modules文件夹。
添加以下行到你的。gitignore
*/node_modules/*
这将忽略当前目录和子目录中的所有node_modules。
直接通过代码编辑器或命令在根文件夹中创建.gitignore文件
Mac和Linux 触摸.gitignore 对于Windows 回声> .gitignore 打开。gitignore,声明文件夹或文件名称,如/foldername