本页面记录了专为基础设施即代码 (IaC) 工具、构建系统和DevOps相关技术设计的gitignore模板。这些模板通过排除不应提交到版本控制的临时文件、构建产物、本地配置和敏感数据,帮助基础设施工程师和DevOps从业者维护整洁的代码仓库。
有关开发环境特定模式,请参阅开发环境模板。有关操作系统特定模式,请参阅操作系统特定模式。
GitHub gitignore 仓库包含多个专用于现代基础设施工具和构建系统的模板。这些模板满足了基础设施供应、配置管理和应用程序构建过程的独特要求。
来源:Terraform.gitignore Packer.gitignore Maven.gitignore Gradle.gitignore Global/Linux.gitignore community/Terragrunt.gitignore PlayFramework.gitignore
基础设施即代码 (IaC) 工具生成各种本地文件,这些文件不应提交到版本控制。这包括状态文件、本地变量定义和缓存文件。
Terraform gitignore 模板处理以下几类文件:
| 类别 | 模式 | 目的 |
|---|---|---|
| 本地状态目录 | **/.terraform/* | 本地插件缓存和模块 |
| 状态文件 | *.tfstate, *.tfstate.* | 基础设施状态数据 |
| 变量文件 | *.tfvars, *.tfvars.json | 可能包含敏感值 |
| 覆盖文件 | override.tf, *_override.tf, 等。 | 本地资源覆盖 |
| 锁文件 | .terraform.tfstate.lock.info | 临时锁信息 |
| 配置 | .terraformrc, terraform.rc | CLI配置文件 |
| 崩溃日志 | crash.log, crash.*.log | 调试信息 |
Packer 是另一个 HashiCorp 工具,用于创建机器镜像,它有自己的 gitignore 模式:
| 类别 | 模式 | 目的 |
|---|---|---|
| 缓存对象 | packer_cache/ | 缓存的产物和下载文件 |
| 变量文件 | *.pkrvars.hcl | 可能包含秘密的变量文件 |
| 崩溃日志 | crash.log | 调试信息 |
| 输出产物 | *.box | 构建的机器镜像 |
Terragrunt 是 Terraform 的一个轻量级包装器,提供额外功能,它有一个特定的模式来忽略其缓存:
.terragrunt-cache
此目录包含 Terragrunt 生成的缓存 Terraform 配置。
来源:community/Terragrunt.gitignore1-4
来源:Terraform.gitignore1-37 Packer.gitignore1-16 community/Terragrunt.gitignore1-4
构建工具生成许多临时文件和目录,这些文件和目录应从版本控制中排除。该仓库包含了针对流行构建系统(如Maven和Gradle)的模板。
Maven 的 gitignore 模板处理以下文件类型:
| 类别 | 模式 | 目的 |
|---|---|---|
| 构建目录 | target/ | 编译代码和打包产物 |
| 版本控制 | pom.xml.tag, pom.xml.releaseBackup, 等。 | 发布期间创建的临时文件 |
| 构建属性 | release.properties, buildNumber.properties | 在构建过程中生成 |
| 依赖信息 | dependency-reduced-pom.xml | 在依赖管理期间生成 |
| Maven 包装器 | .mvn/timing.properties | Maven 包装器配置 |
| IDE集成 | .project, .classpath | Eclipse m2e 集成文件 |
Gradle 模板处理 Gradle 构建的类似问题:
| 类别 | 模式 | 目的 |
|---|---|---|
| Gradle 目录 | .gradle | Gradle 系统目录 |
| 构建目录 | **/build/ | 跨项目的构建输出 |
| GUI 配置 | gradle-app.setting | Gradle GUI 配置 |
| 异常处理 | !gradle-wrapper.jar, !gradle-wrapper.properties | 尽管存在其他模式仍需包含的文件 |
| 缓存 | .gradletasknamecache | 任务名称缓存以提高性能 |
| IDE集成 | .project, .classpath | Eclipse 集成文件 |
Play Framework 模板排除与 Play 应用程序相关的各种目录和文件:
| 类别 | 模式 | 目的 |
|---|---|---|
| 工作目录 | bin/, /db, /lib/, 等。 | 框架特定目录 |
| 日志 | /logs/ | 应用程序日志 |
| 临时文件 | tmp/, test-result | 在开发/测试期间生成 |
| 进程信息 | server.pid | 服务器进程ID文件 |
| 发行版 | /dist/ | 分发包 |
| 缓存 | .cache | 本地缓存文件 |
来源:PlayFramework.gitignore1-17
来源:Maven.gitignore1-18 Gradle.gitignore1-22 PlayFramework.gitignore1-17
DevOps 工作流通常跨越多个操作系统,每个系统都有自己应忽略的文件集。
Linux gitignore 模板处理以下几类Linux系统特有的文件:
| 类别 | 模式 | 目的 |
|---|---|---|
| 备份文件 | *~ | 编辑器创建的临时备份文件 |
| 文件系统产物 | .fuse_hidden*, .nfs* | 由文件系统操作创建 |
| 文件管理器元数据 | .directory | 由Dolphin等文件管理器创建 |
| 垃圾文件夹 | .Trash-* | 可能出现在任何分区上的垃圾文件 |
| 命令输出 | nohup.out | nohup 命令的默认日志文件 |
操作系统特定和工具特定gitignore模式的组合在DevOps环境中尤为重要,因为工程师经常在不同平台和工具链之间工作。
Gitignore 模板在 DevOps 工作流中扮演着关键角色,它确保只有必要文件被提交到版本控制。
来源:Terraform.gitignore1-37 Maven.gitignore1-18 Gradle.gitignore1-22 Global/Linux.gitignore1-17
在使用基础设施和DevOps工具时,请考虑以下gitignore模板的最佳实践:
始终排除状态文件:像 Terraform 的.tfstate文件等状态文件可能包含敏感信息,绝不应提交。
排除包含秘密的变量文件:包含变量的文件(如.tfvars或.pkrvars.hcl)通常包含密码、API密钥和其他秘密。
包含包装器文件:构建工具包装器文件(如gradle-wrapper.jar)通常应被包含,尽管其他.jar文件被排除。
平衡共享配置:考虑哪些配置文件应在团队成员之间共享,哪些应保留在本地。
记录例外情况:当包含原本会被排除的文件时(使用!pattern),记录这些例外为何是必需的。
有关基础设施和DevOps相关特定gitignore模板的更多详细信息,请参阅:
有关可能与这些工具一起使用的开发环境模板,请参阅开发环境模板。