gitignore 包含忽略/排除目录中的特定子目录

问题描述 投票:0回答:2

我想忽略除我 node_modules 中的一个文件夹之外的所有内容。所以这就是我放在我的.gitignore:

中的内容
!/node_modules/abc/*
/node_modules

还试过:

!node_modules/abc/*
node_modules/*

但是它没有像预期的那样工作。这使得 node_modules 中的每个文件夹都被忽略了。

git gitignore
2个回答
0
投票

您必须在 node_modules 目录中的 .gitignore 中执行此操作,因为如果排除了该文件的父目录,则无法重新包含该文件。请参阅文档https://git-scm.com/docs/gitignore


0
投票

评估的顺序需要是:

忽略节点模块中的所有内容(注意尾随的通配符 - 这很重要,否则它只会忽略整个 node_modules 文件夹,并且不会评估您的嵌套文件夹,您将在下一行中取消忽略):

node_modules/*

除了

!node_modules/abc/*

node_modules/*
!node_modules/abc/*

* 很重要,否则您将忽略目录本身(因此 git 不会查看内部)而不是目录中的文件(允许排除)。

.gitignore 排除规则实际上是如何工作的?

.gitignore 排除文件夹但包括特定的子文件夹

© www.soinside.com 2019 - 2024. All rights reserved.