codecamp

GitHub 手动为仓库创建单一议题模板

将手动创建的议题模板添加到仓库后,项目贡献者会自动在议题正文中看到模板的内容。

这是用于创建议题模板的旧工作流程。 建议使用升级的多议题模板构建器来创建多个议题模板。 更多信息请参阅“关于议题和拉取请求模板”。

您可以在任何支持的文件夹中创建 ISSUE_TEMPLATE/ 子目录,以包含多个议题模板,并且使用 template 查询参数指定填充议题正文的模板。 更多信息请参阅“关于使用查询参数自动化议题和拉取请求”。

您可以将 YAML 前页添加到每个议题模板以预填议题标题、自动添加标签和受理人,并且为模板提供名称和说明,人们在您的仓库中新建议题时就会从模板选择器中看到该名称和说明。

下面是 YAML 前页的示例。

---
name: Tracking issue
about: Use this template for tracking new features.
title: "[DATE]: [FEATURE NAME]"
labels: tracking issue, needs triage
assignees: octocat
---

注:必须将 YAML 保留的字符(如 :)放在引号中。 例如 ":bug: Bug"

要包含在社区资料检查列表中,议题模板必须位于 .github/ISSUE_TEMPLATE 文件夹中,并且包含有效的 name:about: YAML 前页。

您可以创建默认的议题模板和议题模板的默认配置文件,适用于您的组织或用户帐户。 更多信息请参阅“创建默认社区健康文件”。

添加议题模板

  1. 在 GitHub 上,导航到仓库的主页面。

  1. 在文件列表上方,使用 Add file 下拉菜单,点击 Create new file

  1. 在文件名字段中:

  • 要使议题模板显示在仓库的根目录中,请输入 issue_template 的名称。 例如 issue_template.md

根目录中的新议题模板名称

  • 要使议题模板显示在仓库的 docs 目录中,请输入 docs/,后接 issue_template 的名称。 例如 docs/issue_template.md

Docs 目录中的新议题模板

  • 要将文件存储在隐藏的目录中,请输入 .github/,后接 issue_template 的名称。 例如 .github/issue_template.md

隐藏目录中的新议题模板

  • 要创建多个议题模板,并使用 template 查询参数指定填充议题正文的模板,请输入 .github/ISSUE_TEMPLATE/,后接议题模板的名称。 例如 .github/ISSUE_TEMPLATE/issue_template.md。 您也可以在根目录或 docs/ 目录的 ISSUE_TEMPLATE 子目录中存储多个议题模板。 更多信息请参阅“关于使用查询参数自动化议题和拉取请求”。

隐藏目录中新的多议题模板

  1. 在新文件的正文中,添加您的议题模板。 这可能包括:

  • YAML 前页
  • 预期行为和实际行为
  • 重现问题的步骤
  • 项目版本、操作系统或硬件等规范

  1. 在页面底部,输入一条简短、有意义的提交消息,描述您对文件所作的更改。 您可以在提交消息中将提交归于多个作者。 更多信息请参阅“创建有多个合作作者的提交”。

有关更改的提交消息

  1. 在提交消息字段下面,确定是要将提交添加到当前分支还是新分支。 如果当前分支是默认分支,则应选择为提交创建一个新分支,然后创建一个拉取请求。 更多信息请参阅“创建新的拉取请求”。

提交分支选项

模板可供协作者用来合并到仓库的默认分支。

  1. 单击 Propose new file(提议新文件)

提议新文件按钮

延伸阅读

GitHub 为仓库创建拉取请求模板
GitHub 管理破坏性评论
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

GitHub 身份验证

在 GitHub 上管理订阅和通知

在 GitHub 上管理活动的订阅

GitHub 组织和团队

GitHub 管理对组织仓库的 Git 访问

GitHub 计费和付款

GitHub 使用议题和拉取请求进行协作

GitHub 在具有代码质量功能的仓库上进行协作

管理在 GitHub 上的工作

GitHub 建立强大的社区

GitHub 管理仓库

GitHub 自定义 GitHub 工作流程

在 GitHub Marketplace 中购买并安装应用程序

通过 GitHub Jobs 寻找人才

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }