SuperAPI AI 工具集

gitignore

编程与开发

查看项目

更新于 10-16 02:06

技能介绍

用途

ign(GitHub Gitignore CLI)是一个用 Rust 构建的高性能、显式管理、对 Agent 友好的 .gitignore 管理器。它由官方 github/gitignore 仓库驱动,用于在初始化新项目仓库或维护现有仓库时,生成和管理 .gitignore 文件。其核心特性包括模块化块隔离合并、上下文感知模板检测、智能别名、模糊搜索,以及保证保留用户自定义规则。工具默认完全离线运行,无隐藏网络请求,仅在显式命令下按需同步模板。

主要能力

  • 基于官方 GitHub gitignore 模板库生成 .gitignore。
  • 模块化块隔离合并,支持安全追加与去重。
  • 上下文感知模板检测:根据项目标记、构建文件、操作系统与 IDE 配置自动选择并组合模板。
  • 智能别名与模糊搜索。
  • 保证保留用户自定义规则。
  • 默认离线运行,零隐藏网络请求,按需显式同步模板。
  • 提供结构化 JSON 输出,便于 Agent 或 CI 消费。

使用方式

前置条件与安装

在执行任何 .gitignore 操作前,应依次验证安装与初始化:

  1. 验证并安装 CLI 工具:
command -v ign >/dev/null 2>&1 || cargo install ign
  1. 验证并初始化模板库,检查 ~/.config/ign/templates 是否已初始化,若未就绪则克隆官方模板仓库:
ign template status >/dev/null 2>&1 || ign template init

上下文感知模板选择

为项目配置 .gitignore 时,应先检查工作区上下文(项目标记、构建文件、操作系统与 IDE 配置),自动选择并组合匹配的模板。

语言与技术栈映射:

  • Cargo.toml、Cargo.lock → Rust(Rust 构建产物 target/ 与备份)
  • package.json、pnpm-lock.yaml、yarn.lock → Node(Node.js / Web 前端依赖与构建输出)
  • pyproject.toml、requirements.txt、Pipfile → Python(Python 虚拟环境与 pycache/)
  • go.mod、go.sum → Go(Go 二进制与 vendor 目录)
  • pom.xml → Java、Maven(Java Maven 项目)
  • build.gradle、build.gradle.kts、gradlew → Java、Gradle(Gradle / Kotlin / Android 项目)
  • composer.json → PHP(PHP Composer 依赖)
  • Gemfile → Ruby(Ruby / Rails 依赖与日志)
  • pubspec.yaml → Dart、Flutter(Dart / Flutter 跨平台项目)
  • CMakeLists.txt、Makefile → C++ 或 C(C / C++ 构建输出)
  • deno.json、deno.jsonc → Deno(Deno 缓存与构建产物)
  • mix.exs → Elixir(Elixir / Phoenix 项目)
  • .sln、.csproj → VisualStudio(.NET / C# 解决方案)

操作系统模板(根据当前执行环境添加):

  • Linux:Linux(映射到 Global/Linux)
  • macOS:macOS(映射到 Global/macOS)
  • Windows:Windows(映射到 Global/Windows)

开发者工具 / IDE 模板(根据工作区设置或用户偏好添加):

  • VS Code:Visual_Studio_Code(别名 vscode,映射到 Global/VisualStudioCode)
  • JetBrains(IDEA/CLion/RustRover/PyCharm/GoLand):JetBrains(别名 idea,映射到 Global/JetBrains)

Agent 自动化决策示例:

# 示例:在 Linux 上检测到 Rust 项目,使用 VS Code 与 JetBrains IDE
ign init Rust macOS Linux JetBrains Visual_Studio_Code

# 示例:检测到前端 Node.js 项目
ign init Node macOS Linux Visual_Studio_Code

命令

初始化项目 .gitignore(init):

# 显式指定模板初始化
ign init Rust macOS JetBrains Visual_Studio_Code

# 交互式多选
ign init -i

# 重新初始化现有文件并保留手动自定义规则
ign init Rust macOS

追加与更新模板(add),安全地将新语言或工具模板追加到现有 .gitignore(自动去重,保留自定义规则):

ign add Linux Python

检查与审计已应用模板(status),查看当前仓库 .gitignore 的元数据(已应用模板、时间戳、自定义规则):

# 人类可读的终端输出
ign status

# 供 Agent/CI 使用的结构化 JSON 输出
ign status --json

JSON 输出结构:

{
  "file_exists": true,
  "path": ".gitignore",
  "managed_by_ign": true,
  "templates_count": 4,
  "templates": [
    "Rust",
    "Global/macOS",
    "Global/JetBrains",
    "Global/VisualStudioCode"
  ],
  "created_at": "2026-08-29T04:33:10Z",
  "updated_at": "2026-08-29T04:33:21Z",
  "has_custom_rules": true,
  "custom_rules_lines": 2,
  "custom_rules": "# Custom user rule\nscratch/",
  "total_lines": 220
}

移除指定模板(remove),从 .gitignore 中移除模板,同时保持其余模板与自定义规则不变:

ign remove Global/macOS
# 或使用智能别名:
ign remove macos

搜索与浏览模板(search / list / show):

# 模糊搜索模板
ign search elixir
ign search jetbrains --json

# 查看原始模板内容
ign show Rust

# 列出某个分类下的所有模板
ign list -c global

本地模板仓库维护(template):

# 查看本地模板库状态与目录路径
ign template status
ign template path

# 手动从 GitHub 拉取最新模板
ign template update
# (顶层简写:ign update)

环境变量

  • 默认模板存储路径:~/.config/ign/templates
  • 自定义存储路径覆盖:export IGN_TEMPLATES_DIR="/path/to/custom/gitignore-repo"

适用场景

  • 初始化新项目仓库时自动生成匹配技术栈的 .gitignore。
  • 为已有仓库追加新的语言、工具、操作系统或 IDE 忽略规则。
  • 审计当前 .gitignore 已应用的模板与自定义规则。
  • 在 Agent 或 CI 流程中以 JSON 形式读取 .gitignore 状态。
  • 在离线环境中管理 .gitignore,并按需显式同步官方模板。

限制

  • 需要先安装 Rust 工具链以通过 cargo install ign 安装 CLI。
  • 模板库需初始化(ign template init)后才能使用。
  • 默认离线运行,模板更新需通过显式命令(如 ign template update)触发。
  • 关于收费、价格、平台支持范围等具体信息,资料中暂未提供。