.gitignore文件中的各种写法详解
·
🧩 一、常见写法及含义详解
| 写法 | 含义 | 示例说明 |
|---|---|---|
*.log |
忽略所有目录下以 .log 结尾的文件 |
如 app.log, logs/error.log 都会被忽略 |
filename |
忽略所有目录下名为 filename 的文件 |
如 .npmrc, package-lock.json |
/filename |
只忽略项目根目录下的 filename 文件 |
不会忽略子目录里的 .npmrc |
dirname/ |
忽略名为 dirname 的目录(包括其内容) |
如 /node_modules/ 会忽略整个 node_modules 目录 |
**/filename |
忽略任意层级子目录下的 filename 文件 |
比如 src/utils/.npmrc 也会被忽略 |
dir/**/*.txt |
忽略某个目录及其子目录下的所有 .txt 文件 |
比如 dir/logs/a.txt 被忽略 |
🔍 二、具体举例说明
假设你的项目结构如下:
my-project/
├── .npmrc
├── package.json
├── hvigorfile.ts
├── .gitignore
├── src/
│ └── .npmrc ← 子目录也有一个 .npmrc
└── node_modules/
情况 1️⃣:只写 .npmrc
.npmrc
- ✅ 效果:Git 会忽略 所有位置的 .npmrc 文件
- ❌ 包括根目录和 src/ 等子目录中的 .npmrc
情况 2️⃣:写成 /.npmrc
/.npmrc
- ✅ 效果:只会忽略 项目根目录下的 .npmrc
- ❌ 不会忽略子目录中的 .npmrc
情况 3️⃣:写成 **/.npmrc
**/.npmrc
- ✅ 效果:忽略 所有子目录下的 .npmrc 文件
- ⚠️ 常用于确保不会遗漏任何地方的配置文件
✅ 三、总结表格
| 写法 | 是否忽略根目录文件 | 是否忽略子目录文件 | 推荐用法 |
|---|---|---|---|
.npmrc |
✅ | ✅ | ✅ 推荐,通用性强 |
/.npmrc |
✅ | ❌ | ❌ 不推荐,容易漏掉子目录 |
**/.npmrc |
✅ | ✅ | ✅ 和 .npmrc 效果一样,更显式 |
💡 四、建议
你现在 .gitignore 中已经写了这些:
/node_modules
/oh_modules
/local.properties
/.idea
**/build
/.hvigor
...
- /node_modules → 只忽略根目录下的 node_modules,不包括子模块中的
- 如果你想忽略所有位置的 node_modules,应写成:
**/node_modules
同理:
| 原写法 | 更通用写法 | 说明 |
|---|---|---|
/node_modules |
**/node_modules |
忽略所有位置的 node_modules |
/oh_modules |
**/oh_modules |
忽略所有位置的 oh_modules |
/.hvigor |
**/.hvigor |
忽略所有位置的 .hvigor 目录 |
✅ 最终建议 .gitignore(更全面)
# 忽略依赖目录
**/node_modules
**/oh_modules
# 忽略构建输出
**/build
**/.hvigor
# 忽略配置与敏感文件
.local.properties
.npmrc
# 忽略 IDE 文件
**/.idea
**/.appanalyzer
**/.clangd
**/.clang-format
**/.clang-tidy
# 忽略临时测试文件
**/.test
# 忽略编译缓存
.cxx
更多推荐
所有评论(0)