Thanks to visit codestin.com
Credit goes to docs.github.com

Skip to main content

GitHub Copilot CLI 的最佳做法

了解如何充分利用 GitHub Copilot 命令行界面 (CLI)。

介绍

          GitHub Copilot 命令行界面 (CLI) 是一个终端原生 AI 编码助手,用于将代理功能直接引入命令行。 
          Copilot 命令行界面(CLI) 可以像聊天机器人一样操作,回答你的问题,但它的真正力量在于它能够作为编码合作伙伴自主工作,让你委托任务并监督其工作。

本文提供有关如何充分利用 Copilot 命令行界面(CLI) 的提示,包括如何有效使用各种 CLI 命令以及如何管理 CLI 对文件的访问。 将这些提示视为起点,然后尝试找出最适合工作流的内容。

注意

          GitHub Copilot 命令行界面 (CLI) 不断发展。 
          `/help`使用命令查看最新信息。

1.自定义环境

使用自定义说明文件

          Copilot 命令行界面(CLI) 自动读取来自多个位置的说明,允许你定义组织范围的标准和特定于存储库的约定。

          **支持的位置(按发现顺序):**
位置Scope
~/.copilot/copilot-instructions.md所有会话(全局)
.github/copilot-instructions.md资料库
.github/instructions/**/*.instructions.md存储库(模块化)
AGENTS.md (在 Git 根或 cwd 中)资料库
Copilot.mdGEMINI.mdCODEX.md资料库

最佳做法

存储库说明 始终优先 于全局指令。 使用此函数强制实施团队约定。 例如,这是一个简单的 .github/copilot-instructions.md 文件。

## Build Commands
- `npm run build` - Build the project
- `npm run test` - Run all tests
- `npm run lint:fix` - Fix linting issues

## Code Style
- Use TypeScript strict mode
- Prefer functional components over class components
- Always add JSDoc comments for public APIs

## Workflow
- Run `npm run lint:fix && npm test` after making changes
- Commit messages follow conventional commits format
- Create feature branches from `main`

提示

保持说明简洁且可执行。 冗长的指令可以稀释有效性。

有关详细信息,请参阅“关于自定义GitHub Copilot 响应”。

配置允许的工具

在不请求权限的情况下管理哪些工具 Copilot 可以运行。 请求操作权限时 Copilot ,通常可以选择只允许此操作,或者允许工具用于 CLI 会话的其余部分。

若要重置以前批准的工具,请使用:

/reset-allowed-tools

还可以通过 CLI 标志预配置允许的工具:

copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'
          **常见权限模式:**
  • shell(git:*) — 允许所有 Git 命令
  • shell(npm run:*) — 允许所有 npm 脚本
  • shell(npm run test:*) — 允许 npm 测试命令
  • write — 允许文件写入

选择首选模型

用于 /model 根据任务复杂性从可用模型中进行选择:

型号最适用于权衡
自动降低速率限制,降低延迟和错误请参阅“关于 Copilot 自动模型选择
Claude Opus 4.5 (默认值)复杂的体系结构,难以调试,细微差别的重构最有能力但使用更多 高级请求
克劳德十四行诗 4.5日常编码,大多数常规任务快捷、经济适用、能够很好地处理大部分工作
GPT-5.2 Codex代码生成、代码评审、直接实现非常适用于查看其他模型生成的代码
          **Recommendations:**
  • 根据 实时系统运行状况和模型性能自动选择模型,降低速率限制并提供较低的延迟和错误。
  • Opus 4.5 非常适合需要深度推理、复杂的系统设计、微妙的 bug 调查或广泛的上下文理解的任务。
  • 切换到 Sonnet 4.5 以执行速度与成本效益很重要的常规任务,它可以有效地处理大多数日常编码。
  • 使用 Codex 生成大量代码,并作为查看其他模型生成的代码的第二种意见。

你可以在会话过程中根据任务复杂性的变化切换 /model 模型。

如果组织或企业已使用自己的 LLM 提供程序 API 密钥配置自定义模型,这些模型也会显示在 /model 列表底部。

使用自己的模型提供程序

可以配置 Copilot 命令行界面(CLI) 使用您自己的模型提供程序,而不是使用 GitHub 托管的模型。 运行 copilot help providers 以获取完整的安装说明。

          **关键注意事项:**
  • 模型必须支持 工具调用 (函数调用)和 流式处理。 Copilot 命令行界面(CLI) 如果缺少任一功能,则返回错误。
  • 为了获得最佳结果,请使用具有至少 128k 个标记的上下文窗口的模型。
  • 内置子代理(/review/task/fleet)会自动继承您的提供程序配置。
  • 使用你自己的提供程序时,高级请求成本估算将会隐藏。 令牌使用情况(输入、输出和缓存计数)仍显示。
  • 只有在您也登录到/delegate的情况下,GitHub才有效。 它将会话传输到GitHub的服务器端Copilot,而不是你的提供商。

请参阅 使用自己的模型提供程序

2.在编码之前规划

计划模式

          **根据具体的计划,模型可以达到更高的成功率。** 在计划模式下, Copilot 将在编写任何代码之前创建结构化实现计划。

Shift+Tab 在正常模式和计划模式之间切换。 在计划模式下,输入的所有提示都会触发计划工作流。

或者,可以在正常模式下使用 /plan 命令来实现相同的效果。

          **示例提示(从正常模式):**
/plan Add OAuth2 authentication with Google and GitHub providers
          **发生的情况:**
  • Copilot 分析请求和代码库。
  • 提出澄清问题 ,以符合要求和方法。
  • 使用复选框创建结构化实现计划。
  • 将计划保存到 plan.md 会话文件夹中。
  • 在实施之前等待审批

可以 按 Ctrl+y 在 Markdown 文件的默认编辑器中查看和编辑计划。

          **计划输出示例:**
# Implementation Plan: OAuth2 Authentication

## Overview
Add social authentication using OAuth2 with Google and GitHub providers.

## Tasks
- [ ] Install dependencies (passport, passport-google-oauth20, passport-github2)
- [ ] Create authentication routes in `/api/auth`
- [ ] Implement passport strategies for each provider
- [ ] Add session management middleware
- [ ] Create login/logout UI components
- [ ] Add environment variables for OAuth credentials
- [ ] Write integration tests

## Detailed Steps
1. **Dependencies**: Add to package.json...
2. **Routes**: Create `/api/auth/google` and `/api/auth/github`...

何时使用计划模式

Scenario使用计划模式?
复杂的多文件更改
涉及多个接触点的重构
新功能实现
快速修复漏洞
单个文件更改

探索→计划→代码→提交工作流

为获得最佳复杂任务结果:

  • 浏览

    Read the authentication files but don't write code yet

  • 计划

    /plan Implement password reset flow

  • 审查

    检查计划,建议修改

  • 实现

    Proceed with the plan

  • 验证

    Run the tests and fix any failures

  • 提交

    Commit these changes with a descriptive message

3. 利用无限会话

自动上下文窗口管理

          Copilot 命令行界面(CLI) 具有 **无限会话**。 你无需担心上下文耗尽。 系统通过智能压缩自动管理上下文,以汇总对话历史记录,同时保留基本信息。

          **会话存储位置:**
~/.copilot/session-state/{session-id}/
├── events.jsonl      # Full session history
├── workspace.yaml    # Metadata
├── plan.md           # Implementation plan (if created)
├── checkpoints/      # Compaction history
└── files/            # Persistent artifacts

注意

如果需要手动触发压缩,请使用 /compact。 这很少是必需的,因为系统会自动处理它。

会话管理命令

若要查看有关当前 CLI 会话的信息,请输入:

/session

若要查看任何会话检查点的列表,请输入:

/session checkpoints

注意

压缩会话上下文时会创建检查点,并允许查看创建的 Copilot 摘要上下文。

若要查看特定检查点的详细信息,请输入:

/session checkpoints NUMBER

其中 NUMBER 指定要显示的检查点。

若要查看在当前会话期间创建的任何临时文件(例如,由 Copilot 创建但不应保存到存储库的工件),请输入:

/session files

若要查看当前计划(如果 Copilot 已生成计划),请输入:

/session plan

最佳做法:使会议保持专注

虽然无限会话允许长时间运行的工作,但专注的会话会产生更好的结果:

  • 使用 /clear/new 在不相关的任务之间。
  • 这会重置上下文并提高响应质量。
  • 想想就像开始与同事进行新的对话。

          `/context` 命令

使用 /context. 可视化当前上下文使用情况。 它会显示以下内容的细分:

  • 系统/工具令牌
  • 消息历史记录令牌
  • 可用空间
  • 缓冲区分配

4. 有效地分配工作

          `/delegate` 命令

          **使用 Copilot云代理 将工作卸载到云中运行。** 这在以下方面特别有效:
  • 可以异步运行的任务。

  • 对其他存储库的更改。

  • 你不想等待的长时间运行的操作。

            **示例提示词:**
    
/delegate Add dark mode support to the settings page
          **发生的情况:**
  • 你的请求将发送到 Copilot云代理。
  • 智能体会创建一个包含更改的拉取请求。
  • 可以在云代理工作期间继续在本地工作。

何时使用 /delegate

使用 /delegate在本地工作
附带任务核心功能开发
文档更新调试
重构单独的模块交互式探索

5. 常见工作流

代码库入门

在加入新项目时,将 Copilot 命令行界面(CLI) 用作您的配对编程合作伙伴。 例如,可以询问 Copilot:

  • How is logging configured in this project?
  • What's the pattern for adding a new API endpoint?
  • Explain the authentication flow
  • Where are the database migrations?

测试驱动开发

将 Copilot 命令行界面(CLI) 与之配对以开发测试。

  • Write failing tests for the user registration flow
  • 查看和批准测试。
  • Now implement code to make all tests pass
  • 查看实现。
  • Commit with message "feat: add user registration"

代码评审协助

  • /review Use Opus 4.5 and Codex 5.2 to review the changes in my current branch against `main`. Focus on potential bugs and security issues.

Git 操作

          Copilot 在 Git 工作流中表现出色:
  • What changes went into version `2.3.0`?
  • Create a PR for this branch with a detailed description
  • Rebase this branch against `main`
  • Resolve the merge conflicts in `package.json`

Bug 调查

  • The `/api/users` endpoint returns 500 errors intermittently. Search the codebase and logs to identify the root cause.

重构

  • /plan Migrate all class components to functional components with hooks

    然后回答Copilot提出的问题。 查看它创建的计划,并在必要时要求 Copilot 进行更改。 当你对计划感到满意时,可以提示: Implement this plan

6. 高级模式

在多个存储库中工作

          **
          Copilot 命令行界面(CLI) 提供灵活的多存储库工作流**,这是处理微服务、monorepos 或相关项目的团队的主要区别。

          **选项 1:从父目录运行**
# Navigate to a parent directory containing multiple repos
cd ~/projects
copilot
          Copilot 现在可以同时访问和处理所有子存储库。 这非常适合用于:
  • 微服务体系结构

  • 在相关存储库间进行协调更改

  • 跨项目重构共享模式

            **选项 2:用于 `/add-dir` 扩展访问权限**
    
# Start in one repo, then add others (requires full paths)
copilot
/add-dir /Users/me/projects/backend-service
/add-dir /Users/me/projects/shared-libs
/add-dir /Users/me/projects/documentation
          **查看和管理允许的目录:**
/list-dirs
          **示例工作流:协调的 API 更改**
I need to update the user authentication API. The changes span:

- @/Users/me/projects/api-gateway (routing changes)
- @/Users/me/projects/auth-service (core logic)
- @/Users/me/projects/frontend (client updates)

Start by showing me the current auth flow across all three repos.

此多存储库能力使能:

  • 跨领域重构(在所有地方更新共享模式)
  • 客户端更新引起的 API 合同更改
  • 引用多个代码库的文档
  • 跨 monorepo 的依赖项升级

使用图像处理 UI 工作

          Copilot 可以处理视觉参考。 只需将图像直接**拖放**到 CLI 输入中,或引用图像文件:
Implement this design: @mockup.png
Match the layout and spacing exactly

复杂迁移的清单

对于大规模更改:

Run the linter and write all errors to `migration-checklist.md` as a checklist.
Then fix each issue one by one, checking them off as you go.

自主任务完成

切换到 Autopilot 模式,以允许 Copilot 在任务完成之前自主工作。 这非常适合不需要持续监督的长时间运行的任务。 有关详细信息,请参阅“允许 GitHub Copilot CLI 自主工作”。

或者,通常可以通过在提示开始时使用 /fleet 斜杠命令来加快大型任务的速度,以允许 Copilot 将任务分解为子代理运行的并行子任务。 有关详细信息,请参阅“使用 /fleet 命令并行运行任务”。

7. 团队指南

  • 使用 .github/copilot-instructions.md 创建:

    • 生成和测试命令
    • 代码样式指南
    • 提交前的必要检查
    • 体系结构决策
  • 建立规范

    • 何时使用 /plan (复杂功能,重构)
    • 何时使用 /delegate(相关工作)
    • 通过 AI 协助进行代码评审

安全注意事项

  • Copilot 命令行界面(CLI) 需要明确批准潜在的破坏性操作。
  • 在接受之前,请查看所有建议的更改。
  • 谨慎使用权限允许列表。
  • 从不提交机密信息。 Copilot 旨在避免这种情况,但要始终进行验证。

测量工作效率

可以跟踪的指标包括:

  • 从问题到拉取请求的时间
  • 合并前的迭代次数
  • 代码评审反馈周期
  • 测试覆盖率改进

获取帮助

在命令行中,可以使用以下命令显示帮助。 copilot -h

有关各种主题的帮助,请输入:

copilot help TOPIC

其中TOPIC可以是:config、、commands``environment、或logging``permissions

在命令行界面 (CLI) 中

有关 CLI 中的帮助,请输入:

/help

若要查看使用情况统计信息,请输入:

/usage

若要将私人反馈提交到 GitHub 有关 Copilot 命令行界面(CLI)、提出 bug 报告或提交功能请求,请输入:

/feedback

动手练习

尝试使用 Copilot 命令行界面(CLI) 技能创建应用程序练习,以获得使用 Copilot 命令行界面(CLI) 构建应用程序的实践经验。

以下是你将了解的内容:

  • 安装 Copilot 命令行界面(CLI)
  • 使用问题模板创建问题
  • 生成 Node.js CLI 计算器应用
  • 扩展计算器功能
  • 编写计算器函数的单元测试
  • 创建、审核和合并你的提交请求

延伸阅读