我有一个包含多个其他项目的项目:
- 主项目
- 迷你项目1
- 迷你项目2
所有项目都包含node_modules
文件夹。我希望Git无论从根文件夹开始忽略该文件夹。类似这样在.gitignore中添加:
*node_modules/*
我有一个包含多个其他项目的项目:
所有项目都包含node_modules
文件夹。我希望Git无论从根文件夹开始忽略该文件夹。类似这样在.gitignore中添加:
*node_modules/*
在项目目录中使用终端输入以下通用单行命令:
touch .gitignore && echo "node_modules/" >> .gitignore && git rm -r --cached node_modules ; git status
无论您是否创建了.gitignore
文件,无论您是否已将node_modules
添加到git跟踪或未添加,此命令都能正常工作。
然后提交并推送.gitignore
更改。
说明:
touch
会生成.gitignore
文件(如果不存在)。
echo
和>>
将在.gitignore
末尾追加node_modules/
,导致node_modules
文件夹及其所有子文件夹被忽略。
git rm -r --cached
从git控制中删除node_modules
文件夹(如果之前添加过)。否则,这将显示警告:pathspec 'node_modules' did not match any files
,这没有副作用,您可以安全地忽略。标志使删除递归,并包括缓存。
git status
显示新的更改。 .gitignore
的更改将显示,而node_modules
不会出现在跟踪列表中。
touch
:如果文件不存在,>>
会创建该文件。 - lionellotouch
命令。否则,执行 >>
会返回 no such file or directory: .gitignore
。 - Andrew Schreiberecho "node_modules/" > .gitignore
应该创建一个 新的 文件,并使用 >>
将文本追加到指定文件的末尾。 - chrisz在一个新的monorepo设置中,我发现只需要使用这个
node_modules
解决方法是忽略子目录中的所有 node_modules,注意前后没有斜杠,这意味着递归。
**/node_modules
**
在整个项目中用于递归调用。
对全路径名匹配的模式中,两个连续的星号
**
可能具有特殊意义:以斜杠开头的
**
表示匹配所有目录。例如,**/foo
匹配任何位置的文件或目录foo
,与模式foo
相同。**/foo/bar
匹配直接位于目录foo
下的文件或目录bar
。以
/**
结尾的表示匹配其中的所有内容。例如,abc/**
匹配相对于 .gitignore 文件所在位置的目录abc
中的所有文件,无限深度。斜杠后面跟着两个连续的星号和一个斜杠表示匹配零个或多个目录。例如,
a/\**/b
匹配a/b
、a/x/b
、a/x/y/b
等等。其他连续的星号被视为无效。
node_modules/
更好**
作为递归模式。在monorepo项目中非常有用,其中您在子目录中拥有node_modules。**
将搜索目录中的所有node_modules并忽略它们。
node_modules/
更好? - Advenanode_modules
文件夹,无论它们位于何处(例如 /BackOffice/frontend/node_modules
)。 - Billybobbonnet**
,没有它也能正常工作。 - Software Engineer首要的事情是在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
echo >.gitignore
。 ;) - lapo**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*
将以下行添加到您的.gitignore文件中:
/node_modules/
在我的情况下,如果没有斜杠,写成/node_modules是无效的。
echo node_modules/ > .gitignore
。您可以通过输入git status
来检查git是否跟踪该文件夹。如果正在跟踪,请输入git rm -r --cached node_modules
。