github copilot可通过项目级指令文件统一代码风格:在.github/copilot-instructions.md中定义命名、安全等规范,配合vs code格式化设置与上下文示例,实现生成即合规;.copilotignore可屏蔽敏感目录,验证时函数命名符合camelcase即生效。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

团队里十个人写JavaScript,能冒出七种命名风格、五种缩进习惯和三种错误处理套路——这不是段子,是每天在PR评审里真实发生的冲突。用GitHub Copilot统一全组代码风格,关键不是禁用它,而是让它从第一天起就“知道你们家的规矩”。
创建项目级指令文件
在项目根目录下新建.github文件夹,再在里面新建copilot-instructions.md文件。
这个路径【必须严格为.github/copilot-instructions.md】,Copilot只认这个固定位置,放错目录或改名都不会生效。
用Markdown语法写明团队硬性约定,比如:
```markdown
---
applyTo: "**"
---
## 命名规范
- 组件名:PascalCase(如 `UserProfileCard`)
- 函数/变量:camelCase(如 `fetchUserData`)
- 私有字段:前缀下划线(如 `_cacheTimeoutMs`)
- 常量:SNAKE_CASE(如 `DEFAULT_RETRY_DELAY_MS`)
## 安全要求
- 禁止拼接SQL字符串,一律使用参数化查询
- 用户输入必须经 `sanitizeHtml()` 或 `escapeHtml()` 处理
```
配置编辑器自动格式化链
VS Code用户需在设置中启用三项关键开关:
① 打开设置 → 搜索“format on save” → 勾选 Editor: Format On Save
② 搜索“code actions on save” → 展开 → 勾选 Source: Fix All 和 Source: Organize Imports
③ 搜索“default formatter” → 设置为 esbenp.prettier-vscode(前提是已安装Prettier插件)
这三步构成“Copilot生成 → 保存即修正 → 提交前拦截”的闭环。即使Copilot偶尔漏掉分号或用了单引号,保存瞬间就会被Prettier拉回正轨。
用上下文示例喂养Copilot
方法一:在新文件顶部粘贴一段符合规范的样板代码
```ts
/**
* 获取用户基础信息
* @param userId 用户唯一标识
* @returns Promise
* @throws {UserNotFoundError} 当用户不存在时
*/
export async function getUserProfile(userId: string): Promise
// TODO: 实现逻辑
}
```
专为资深工程师设计,用于高效日常使用 GitHub Copilot CLI。适用于在规划、提示、审查或链式调用 gh copilot 命令时,探索代码库、起草变更、调试问题或加速工作流,且不偏离架构意图。
方法二:在相邻函数中保持命名与结构一致
如果已有 `getProductList()` 和 `updateProductStatus()`,Copilot在你敲 `createProduct` 时会自然沿用 `camelCase` 动词开头模式,而不是突然冒出 `new_product()`。
注意:【Copilot不读取注释以外的文档文件】,所以把规范写在README里毫无作用,必须让代码本身开口说话。
设置敏感目录屏蔽
在项目任意目录下新建.copilotignore文件,每行写一个路径模式:
```
secrets/
config/local.env
**/migrations/*.sql
```
这样Copilot在打开secrets/api-keys.ts时不会弹出任何补全建议,避免AI意外暴露密钥格式或生成危险操作。
验证指令是否生效
步骤一:在空的src/utils/string-utils.ts文件中输入注释:
// 实现一个函数,将字符串首字母大写,其余转小写
步骤二:按Ctrl+Enter触发Copilot建议
步骤三:检查生成的函数名是否为capitalizeFirstLetter而非capitalize_first_letter或CapitalizeFirstLetter
若命名符合copilot-instructions.md中定义的camelCase规则,说明指令已加载成功。










