[英]Git - Ignore node_modules folder everywhere
我有一个包含多个其他项目的项目:
所有包含node_modules
文件夹。 我希望 git 忽略该文件夹,无论它从根文件夹开始的位置。 像这样添加 in.gitignore 的东西:
*node_modules/*
在项目目录的终端中使用通用单行:
touch .gitignore && echo "node_modules/" >> .gitignore && git rm -r --cached node_modules ; 状态
无论您是否创建了.gitignore
,无论您是否已将node_modules
添加到 git 跟踪,它都有效。
然后提交并推送.gitignore
更改。
解释
如果.gitignore
文件尚不存在, touch
将生成它。
echo
和>>
将在.gitignore
末尾附加node_modules/
,导致node_modules
文件夹和所有子文件夹被忽略。
git rm -r --cached
如果之前添加了node_modules
文件夹,则从 git 控件中删除它。 否则,这将显示警告pathspec 'node_modules' did not match any files
,它没有副作用,您可以放心地忽略。 这些标志导致删除是递归的并包括缓存。
git status
显示新的更改。 将出现对.gitignore
的更改,而node_modules
将不会出现,因为它不再被 git 跟踪。
在一个新的 monorepo 设置中,我发现只是使用这个
node_modules
解决它忽略子目录中的所有node_modules,注意之前或之后没有斜杠,这意味着递归。
**/node_modules
**
用于整个项目中的递归调用
与完整路径名匹配的模式中的两个连续星号
**
可能具有特殊含义:前导
**
后跟斜杠表示在所有目录中都匹配。 例如,**/foo
匹配任何地方的文件或目录foo
,与模式foo
相同。**/foo/bar
匹配文件或目录bar
直接位于目录foo
下的任何位置。尾随
/**
匹配里面的所有内容。 例如,abc/**
匹配目录abc
中的所有文件,相对于 .gitignore 文件的位置,具有无限深度。斜杠后跟两个连续的星号,然后斜杠匹配零个或多个目录。 例如,
a/\**/b
匹配a/b
、a/x/b
、a/x/y/b
等。其他连续的星号被认为是无效的。
node_modules/
更好 **
充当递归模式。 它在子目录中有 node_modules 的 monorepo 项目中很有用。 **
将搜索目录中的所有 node_modules 并忽略它们。
首先也是最重要的事情是在 my-app 中添加.gitignore
文件。 如下图所示。
然后将其添加到您的.gitignore
文件中
/node_modules
您也可以添加其他文件以忽略它们以推送到 github。 这里还有一些保存在 .gitignore 中的文件。 您可以根据需要添加它们。 #
只是在 .gitignore 文件中注释的一种方式。
# See https://help.github.com/ignore-files/ for more about ignoring files.
# dependencies
/node_modules
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
通过代码编辑器或命令直接在根文件夹中创建.gitignore文件
适用于 Mac 和 Linux
touch .gitignore
对于 Windows
echo >.gitignore
像这样打开.gitignore声明文件夹或文件名/foldername
**node_modules
这对我有用
忽略子文件夹中存在的所有 node_modules 的递归方法
如果没有,它将自动创建一个.gitignore
文件,然后创建一个文件名.gitignore
并添加复制并粘贴以下代码
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
以下这些都是不必要的文件
有关忽略文件的更多信息,请参阅https://help.github.com/articles/ignoring-files/ 。
并保存.gitignore
文件,您可以上传
将以下行添加到您的 .gitignore
/node_modules/
就我而言,在没有前斜杠的情况下编写 /node_modules 是行不通的
你也可以用 SVN/Tortoise git 来做。
只需右键单击 node_modules -> Tortoise git -> 添加到忽略列表。
这将为您生成 .gitIgnore 并且您将不会在暂存中再次找到 node_modules 文件夹。
如果您的子项目/客户端 node_modules 被提交,
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
然后在最后一行添加“node_modules”。
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
node_modules
# ------ Up Here ------
按着这些次序 -
CTRL + `
node_modules
**node_modules
注意:如果您在输入文件夹或文件的名称时出现拼写错误,它将无法正常工作。 所以,仔细检查拼写
将 node_modules/ 或 node_modules 添加到 .gitignore 文件以忽略当前文件夹和任何子文件夹中名为 node_modules 的所有目录。
在 Mac 中,
如果您想通过命令行执行此操作,请输入echo node_modules/ >.gitignore
。 您可以通过输入git status
来检查 git 是否正在跟踪文件夹。 如果它在git rm -r --cached node_modules
中被跟踪类型。
将以下行添加到您的 .gitignore
*/node_modules/*
这将忽略当前目录和子目录中的所有 node_modules。
只需将不同的 .gitignore 文件添加到迷你项目 1 和迷你项目 2。每个 .gitignore 文件都应该 /node_modules 并且你很高兴。
与那些尝试上述答案但仍面临问题的人为敌
我最终尝试了几乎所有的答案,它解决了我忽略 node_modules 的问题,但只有在我提交更改之后!
在 git 存储库中不保留任何模块并不是一个好习惯。 # gitignore 文件 删除 node_modules 文件夹创建 gitignore 删除 node_modules
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.