.gitignore 生成规范
执行步骤
- •加载模板 - 按顺序加载 8 个模板
- •处理模板 - 应用特殊处理(如 macOS 的
Icon*替换) - •添加标题 - 为每个模板添加对应标题
### 标题 ### - •追加项目特定规则 - 添加
### Project ###和自定义规则 - •合并内容 - 将所有内容合并为一个列表
- •写入文件 - 将内容写入
.gitignore - •规则去重 - 对文件中的规则行进行全局去重,保留首次出现的位置
模板列表
按以下顺序加载 8 个模板,每个模板必须生成对应的标题:
| 顺序 | 模板名称 | 标题 | 特殊处理 |
|---|---|---|---|
| 1 | Global/Windows.gitignore | ### Windows ### | 无 |
| 2 | Global/macOS.gitignore | ### MacOS ### | Icon[^M] → Icon* |
| 3 | Global/JetBrains.gitignore | ### JetBrains ### | 无 |
| 4 | Global/VisualStudioCode.gitignore | ### VSCode ### | 无 |
| 5 | Java.gitignore | ### Java ### | 无 |
| 6 | Kotlin.gitignore | ### Kotlin ### | 无 |
| 7 | Gradle.gitignore | ### Gradle ### | 无 |
| 8 | Maven.gitignore | ### Maven ### | 无 |
模板获取规则
使用:https://gitee.com/huang6349/gitignore/raw/main/{模板名称}
模板处理规则
macOS 模板特殊处理
将 Icon[^M] 替换为 Icon*,解决 IDEA 语法兼容性问题。
输出格式规则
- •每个模板开头必须添加对应标题,格式为
### 标题名称 ### - •使用上表预定义的标题,禁止使用模板原标题
- •标题必须独占一行,第一个模板前无空行,其他模板前保留一个空行,标题后紧跟模板内容
- •模板原内容(包括注释)必须完整保留,仅在去重和特殊处理阶段可以移除重复项
规则去重
去重是生成 .gitignore 时的核心步骤,必须严格执行:
- •对所有模板的规则行进行全局去重
- •规则行定义:非空且不以
#开头的行 - •保留每个规则首次出现的位置
- •后续重复的规则及其关联注释直接跳过,不输出
- •不允许同一规则出现多次
项目特定规则
在添加标题之后、合并之前,追加项目特定规则:
gitignore
### Project ### !libs/*.jar
此规则同样参与后续的去重判断。