本文档概述了为 GitHub gitignore 仓库创建高质量 .gitignore 模板的标准和最佳实践。它提供了有关如何制作优秀模板、如何构建模板内容以及如何为仓库做出贡献的指南。有关如何为仓库做出贡献的常规信息,请参阅 Contributing to Gitignore。
高质量的 gitignore 模板应提供清晰、简洁的规则,以帮助仓库有效地处理特定的编程语言、框架、工具或环境。下图说明了优秀模板的关键特征
来源: README.md37-61
gitignore 仓库将模板分为三个主要类别,以保持结构并帮助用户找到合适的模板。了解这种组织方式对于创建新模板至关重要。
/Global 目录)/community 目录)来源: README.md19-35 Global/README.md1-11
在创建或修改模板时,请遵循以下内容指南,以确保它们对社区有用
| 指南 | 描述 | 示例 |
|---|---|---|
| 关注具体性 | 模板应针对特定语言、框架或工具 | Python.gitignore 仅关注 Python 特定的模式 |
| 提供基本规则 | 包含通用生成文件、构建产物和日志的规则 | *.log, build/, dist/ |
| 提供文档链接 | 尽可能引用官方文档 | 链接到解释生成文件的语言文档 |
| 添加描述性注释 | 用清晰的注释解释不明显的规则 | # 运行时生成的缓存文件 |
| 避免个人偏好 | 规则应普遍适用,而非用户特定 | 不要在语言模板中包含特定于编辑器的文件 |
| 保持简洁 | 模板应专注,不应过于宽泛 | 避免列出所有可能生成的文件 |
来源: README.md37-61 CONTRIBUTING.md3-39
模板的结构和格式对其可用性至关重要。请遵循以下格式指南
每个模板都应以提供上下文的头部开始
# gitignore template for [technology name]
# website: [link to official website]
#
# Recommended: [references to complementary templates if needed]
将相关规则分组,并使用注释分隔部分
# Build artifacts
build/
dist/
*.exe
*.dll
# Logs and databases
*.log
*.sql
*.sqlite
使用清晰、简洁的注释来解释规则的用途
# Ignore configuration files that may contain sensitive information
config.json
.env
来源: community/Alteryx.gitignore1-44 Global/SynopsysVCS.gitignore1-37
对于版本之间差异很大的技术,请遵循以下指南
community/ 目录中来源: README.md92-106
对于专业性强或非主流技术,请遵循以下指南
community/ 目录下的相应文件夹中专业模板的示例结构
# gitignore template for [specialized technology]
# website: [link to official website]
#
# Recommended: [related templates, e.g., VisualStudio.gitignore]
# [Section describing specific rule category]
[specific patterns for this technology]
来源: README.md108-135
在贡献新模板或更新现有模板时,请遵循此工作流程
提交拉取请求时
来源: README.md137-147 .github/PULL_REQUEST_TEMPLATE.md1-24
使用此清单确保您的模板符合质量标准
| 标准 | 要问的问题 |
|---|---|
| 范围 | 模板是否专注于特定的语言、框架或工具? |
| 内容 | 是否包含常见的生成文件、构建产物和日志? |
| 文档 | 是否提供了文档链接?是否解释了不明显的规则? |
| 结构 | 模板是否逻辑组织,并带有适当的注释? |
| 重复性 | 是否避免重复全局模式? |
| 版本控制 | 如果是版本特定的,是否已正确标记和放置? |
| 格式化 | 是否遵循标准的模板格式? |
| 适用性 | 这些模式是否适用于该技术的所有用户,而不仅仅是个人偏好? |
来源: README.md37-61 CONTRIBUTING.md3-39
来源: README.md37-61 CONTRIBUTING.md3-39
创建高质量的 gitignore 模板有助于用户通过排除不必要的文件来维护干净的存储库。通过遵循这些标准和最佳实践,您可以为使用您的模板所针对的特定技术的用户提高版本控制的效率。请记住,模板应该是专注的、有良好文档的,并且普遍适用的,以便提供最大的价值给社区。
最终目标是策划一个最常见和最有用的模板集合,而不是涵盖所有可能的项目。模板应帮助用户快速入门,并为他们特定的开发环境提供有意义的规则。