跳轉到內容

GitHub Copilot 完全使用指南:AI 編程助手安裝、配置與最佳實踐(2026版)

GitHub Copilot AI 編程助手

GitHub Copilot 是由 GitHub 和 OpenAI 聯合開發的 AI 編程助手,被譽為"你的 AI 結對程序員"。它能夠理解上下文,實時提供代碼建議,大幅提升開發效率。本指南將帶您從零開始,全面掌握 GitHub Copilot 的使用技巧,讓編程變得更快、更智能。

目錄

  1. 什麼是 GitHub Copilot?
  2. 為什麼使用 Copilot?
  3. 訂閱與價格
  4. 安裝與配置
  5. 基礎功能使用
  6. 高級技巧與最佳實踐
  7. 支持的語言與框架
  8. 團隊協作與企業版
  9. 常見問題解答
  10. 替代方案對比

1. 什麼是 GitHub Copilot?

1.1 Copilot 簡介

GitHub Copilot 是一款基於 OpenAI Codex 模型的 AI 代碼補全工具,於 2021 年正式發佈。它通過分析您的代碼上下文、註釋和函數名,智能生成代碼建議,幫助您更快地編寫代碼。

核心能力

  • 🤖 智能代碼補全:根據上下文自動生成代碼
  • 💬 自然語言轉代碼:用註釋描述需求,自動生成實現
  • 🔍 多行代碼建議:不僅補全一行,還能生成整個函數
  • 🌐 多語言支持:支持 Python、JavaScript、TypeScript、Go 等主流語言
  • 📝 文檔字符串生成:自動為函數生成文檔
  • 🧪 測試用例生成:輔助編寫單元測試

1.2 技術原理

底層模型

  • 基於 OpenAI GPT 系列模型
  • 專門針對代碼訓練(Codex)
  • 訓練數據來自 GitHub 公開倉庫

工作流程

1. 您在編輯器中編寫代碼
2. Copilot 分析當前文件和上下文
3. AI 模型生成代碼建議
4. 顯示在編輯器中(灰色文本)
5. 您選擇接受或忽略

上下文理解

  • 📄 當前文件內容
  • 📚 導入的庫和模塊
  • 🏗️ 項目結構
  • 💬 註釋和文檔字符串
  • 🔤 變量和函數命名

1.3 發展歷程

時間事件
2021.06Copilot 技術預覽版發佈
2022.06正式版推出,支持更多 IDE
2023.03Copilot Chat 聊天功能上線
2023.09Copilot Enterprise 企業版發佈
2024.02Copilot Workspace 工作區亮相
2024.06支持更多語言和框架
2025-2026持續優化,集成更多 AI 功能

2. 為什麼使用 Copilot?

2.1 效率提升數據

根據 GitHub 官方研究:

開發者反饋

  • ✅ 88% 的開發者表示 Copilot 提高了工作效率
  • ✅ 74% 的開發者能夠更專注於滿足感的任務
  • ✅ 85% 的開發者對 Copilot 感到滿意
  • ⚡ 平均完成任務速度提升 55%

實際案例

傳統方式寫一個 API 接口:
- 設計數據結構:10 分鐘
- 編寫 CRUD 操作:30 分鐘
- 添加錯誤處理:15 分鐘
- 編寫文檔:10 分鐘
總計:65 分鐘

使用 Copilot:
- 描述需求(註釋):2 分鐘
- 接受和調整建議:8 分鐘
- 審查和優化:5 分鐘
總計:15 分鐘

效率提升:4.3 倍!

2.2 適用場景

強烈推薦使用的場景

1. 重複性代碼

python
# 示例:生成多個相似的 API 端點

# 傳統方式:手動複製粘貼修改
# Copilot:寫一個,自動生成其他

@app.route('/api/users', methods=['GET'])
def get_users():
    users = User.query.all()
    return jsonify([user.to_dict() for user in users])

# Copilot 會自動生成:
@app.route('/api/posts', methods=['GET'])
def get_posts():
    posts = Post.query.all()
    return jsonify([post.to_dict() for post in posts])

@app.route('/api/comments', methods=['GET'])
def get_comments():
    comments = Comment.query.all()
    return jsonify([comment.to_dict() for comment in comments])

2. 樣板代碼

typescript
// 輸入註釋,Copilot 生成完整的 React 組件

// Create a form component with email and password fields
// Include validation and submit handler

// Copilot 自動生成:
import React, { useState } from 'react';

interface LoginFormProps {
  onSubmit: (email: string, password: string) => void;
}

const LoginForm: React.FC<LoginFormProps> = ({ onSubmit }) => {
  const [email, setEmail] = useState('');
  const [password, setPassword] = useState('');
  const [errors, setErrors] = useState<{email?: string; password?: string}>({});

  const validate = (): boolean => {
    const newErrors: any = {};
    
    if (!email) {
      newErrors.email = 'Email is required';
    } else if (!/\S+@\S+\.\S+/.test(email)) {
      newErrors.email = 'Email is invalid';
    }
    
    if (!password) {
      newErrors.password = 'Password is required';
    } else if (password.length < 6) {
      newErrors.password = 'Password must be at least 6 characters';
    }
    
    setErrors(newErrors);
    return Object.keys(newErrors).length === 0;
  };

  const handleSubmit = (e: React.FormEvent) => {
    e.preventDefault();
    if (validate()) {
      onSubmit(email, password);
    }
  };

  return (
    <form onSubmit={handleSubmit}>
      <div>
        <label htmlFor="email">Email</label>
        <input
          type="email"
          id="email"
          value={email}
          onChange={(e) => setEmail(e.target.value)}
        />
        {errors.email && <span className="error">{errors.email}</span>}
      </div>
      
      <div>
        <label htmlFor="password">Password</label>
        <input
          type="password"
          id="password"
          value={password}
          onChange={(e) => setPassword(e.target.value)}
        />
        {errors.password && <span className="error">{errors.password}</span>}
      </div>
      
      <button type="submit">Login</button>
    </form>
  );
};

export default LoginForm;

3. 算法實現

python
# 輸入:排序算法
# Copilot 自動生成多種實現

# Quick Sort implementation
def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    
    return quick_sort(left) + middle + quick_sort(right)

# Merge Sort implementation
def merge_sort(arr):
    if len(arr) <= 1:
        return arr
    
    mid = len(arr) // 2
    left = merge_sort(arr[:mid])
    right = merge_sort(arr[mid:])
    
    return merge(left, right)

def merge(left, right):
    result = []
    i = j = 0
    
    while i < len(left) and j < len(right):
        if left[i] <= right[j]:
            result.append(left[i])
            i += 1
        else:
            result.append(right[j])
            j += 1
    
    result.extend(left[i:])
    result.extend(right[j:])
    return result

4. 正則表達式

javascript
// 複雜的正則表達式不再需要查文檔

// Email validation regex
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;

// Phone number validation (US format)
const phoneRegex = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$/;

// Password strength validation
const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;

5. SQL 查詢

sql
-- 複雜查詢輕鬆生成

-- Get users who made purchases in the last 30 days
-- Include total amount and order count
SELECT 
    u.id,
    u.name,
    u.email,
    COUNT(o.id) as order_count,
    SUM(o.total_amount) as total_spent
FROM users u
INNER JOIN orders o ON u.id = o.user_id
WHERE o.created_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
GROUP BY u.id, u.name, u.email
HAVING order_count > 0
ORDER BY total_spent DESC;

2.3 不適合的場景

⚠️ 以下情況慎用 Copilot

  • ❌ 高度定製化的業務邏輯
  • ❌ 安全性要求極高的代碼(需人工審查)
  • ❌ 性能關鍵的底層優化
  • ❌ 全新的、無參考的算法設計
  • ❌ 法律或合規相關的代碼

3. 訂閱與價格

3.1 個人版(Copilot Individual)

價格

  • 💰 $10/月
  • 💰 $100/年(節省 17%)

包含內容

  • ✅ 無限代碼補全
  • ✅ Copilot Chat 聊天功能
  • ✅ 支持所有主流 IDE
  • ✅ 個人使用許可

免費試用

  • 🎁 新用戶 30 天免費試用
  • 🎁 學生和教育工作者免費

適合人群

  • 個人開發者
  • 自由職業者
  • 學生和學習者

3.2 商業版(Copilot Business)

價格

  • 💰 $19/用戶/月

額外功能

  • ✅ 所有內容個人版功能
  • ✅ 集中賬單管理
  • ✅ 組織策略管理
  • ✅ IP indemnification(知識產權保障)
  • ✅ 不訓練公共模型(隱私保護)
  • ✅ 審計日誌

適合人群

  • 小團隊(2-50 人)
  • 創業公司
  • 注重隱私的企業

3.3 企業版(Copilot Enterprise)

價格

  • 💰 $39/用戶/月

額外功能

  • ✅ 所有商業版功能
  • ✅ 基於企業代碼庫的訓練
  • ✅ 企業內部知識檢索
  • ✅ Pull Request 摘要
  • ✅ 命令行集成
  • ✅ 高級支持和 SLA

適合人群

  • 大型企業(50+ 人)
  • 需要定製化 AI 助手
  • 有嚴格合規要求

3.4 免費獲取方式

學生免費

申請條件

  • 🎓 認證的教育機構學生
  • 📧 學校郵箱或學生證明
  • 🆔 GitHub Student Developer Pack

申請步驟

  1. 訪問 education.github.com
  2. 點擊 "Get the Pack"
  3. 驗證學生身份
  4. 獲得免費 Copilot

開源維護者免費

條件

  • 🌟 維護 popular 開源項目
  • 👥 項目有一定影響力
  • ✅ 通過 GitHub 審核

試用期

  • 🎁 所有新用戶 30 天免費
  • 🔄 可隨時取消
  • 💳 需要綁定支付方式

3.5 性價比分析

成本 vs 收益

假設開發者時薪 $50:

每月成本:$10

時間節省:
- 每天節省 1 小時
- 每月 22 個工作日
- 節省 22 小時

價值:
22 小時 × $50/小時 = $1,100

ROI(投資回報率):
($1,100 - $10) / $10 × 100% = 10,900%

結論:即使只節省 1% 的時間,也是划算的!

4. 安裝與配置

4.1 支持的 IDE 和編輯器

官方支持

  • ✅ Visual Studio Code(最推薦 ⭐)
  • ✅ JetBrains IDEs(IntelliJ IDEA, PyCharm, WebStorm 等)
  • ✅ Neovim
  • ✅ Visual Studio
  • ✅ Azure Data Studio
  • ✅ Xcode(beta)

社區支持

  • ✅ Sublime Text
  • ✅ Emacs
  • ✅ Vim

4.2 VS Code 安裝(推薦)

步驟 1:安裝擴展

方法一:應用市場

1. 打開 VS Code
2. 點擊左側 Extensions 圖標(或 Ctrl+Shift+X)
3. 搜索 "GitHub Copilot"
4. 點擊 Install
5. 等待安裝完成

方法二:命令行

bash
code --install-extension GitHub.copilot

步驟 2:登錄 GitHub 賬號

1. 安裝完成後,右下角彈出通知
2. 點擊 "Sign in to GitHub"
3. 瀏覽器打開授權頁面
4. 登錄 GitHub 賬號
5. 授權 Copilot 訪問
6. 返回 VS Code,確認登錄成功

步驟 3:驗證安裝

1. 打開任意代碼文件
2. 開始輸入代碼
3. 看到灰色建議文本
4. 按 Tab 接受建議

測試代碼:
輸入:// function to calculate fibonacci
Copilot 應該自動生成斐波那契函數

4.3 JetBrains IDE 安裝

以 IntelliJ IDEA 為例:

1. File → Settings → Plugins
2. Marketplace 搜索 "GitHub Copilot"
3. 點擊 Install
4. 重啟 IDE
5. Tools → GitHub Copilot → Login to GitHub
6. 完成授權

支持的 JetBrains IDE

  • IntelliJ IDEA
  • PyCharm
  • WebStorm
  • PhpStorm
  • RubyMine
  • GoLand
  • CLion
  • Rider
  • DataGrip
  • Android Studio

4.4 Neovim 安裝

lua
-- 使用 lazy.nvim 包管理器

return {
  {
    "github/copilot.vim",
    -- 或使用 copilot.lua
    -- "zbirenbaum/copilot.lua",
  }
}

-- 配置
vim.g.copilot_no_tab_map = true
vim.api.nvim_set_keymap("i", "<C-J>", 'copilot#Accept("<CR>")', { silent = true, expr = true })

4.5 基本配置

VS Code 設置

打開設置(Ctrl+,),搜索 "copilot":

常用配置

json
{
  // 啟用/禁用 Copilot
  "github.copilot.enable": {
    "*": true,              // 默認啟用
    "plaintext": false,     // 純文本禁用
    "markdown": true,       // Markdown 啟用
    "scminput": false       // Git 提交信息禁用
  },
  
  // 自動顯示建議
  "github.copilot.editor.enableAutoCompletions": true,
  
  // 建議延遲(毫秒)
  "github.copilot.editor.enableAutoCompletions": 300,
  
  // 顯示建議的方式
  "github.copilot.inlineSuggest.enable": true,
  
  // Chat 面板位置
  "github.copilot.chat.panel.location": "right"
}

快捷鍵自定義

默認快捷鍵

操作Windows/LinuxmacOS
接受建議TabTab
拒絕建議EscEsc
顯示下一個建議Alt+]Option+]
顯示上一個建議Alt+[Option+[
打開 ChatCtrl+Shift+ICmd+Shift+I
插入建議Ctrl+EnterCmd+Enter

自定義快捷鍵

json
// keybindings.json
[
  {
    "key": "ctrl+shift+c",
    "command": "github.copilot.toggleCopilot",
    "when": "editorTextFocus"
  },
  {
    "key": "ctrl+alt+h",
    "command": "github.copilot.openChat",
    "when": "editorTextFocus"
  }
]

4.6 隱私設置

重要:配置代碼隱私選項

GitHub 官網 → Settings → Copilot → Privacy

選項:
✅ Allow GitHub to use my code snippets for product improvements
   (允許 GitHub 使用我的代碼改進產品)
   
❌ Block public code matching suggestions
   (阻止匹配公共代碼的建議)

企業用戶建議

  • ❌ 禁用代碼用於訓練
  • ✅ 啟用 IP indemnification
  • ✅ 配置組織策略

5. 基礎功能使用

5.1 代碼補全

單行補全

示例 1:Python 函數

python
# 輸入函數名和參數
def calculate_bmi(weight, height):
    # Copilot 自動生成:
    """
    Calculate Body Mass Index (BMI)
    
    Args:
        weight: Weight in kilograms
        height: Height in meters
    
    Returns:
        BMI value
    """
    return weight / (height ** 2)

示例 2:JavaScript 數組操作

javascript
// 輸入註釋
// Filter active users and sort by name

// Copilot 生成:
const activeUsers = users
  .filter(user => user.isActive)
  .sort((a, b) => a.name.localeCompare(b.name));

多行補全

示例:完整的 Express 路由

javascript
// 輸入:Create a REST API endpoint for user registration
// Include validation, password hashing, and error handling

// Copilot 生成完整實現:
const express = require('express');
const bcrypt = require('bcryptjs');
const { body, validationResult } = require('express-validator');
const User = require('../models/User');

const router = express.Router();

router.post('/register', [
  body('email').isEmail().normalizeEmail(),
  body('password').isLength({ min: 6 }),
  body('name').trim().notEmpty()
], async (req, res) => {
  try {
    // Validate input
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
      return res.status(400).json({ errors: errors.array() });
    }

    const { email, password, name } = req.body;

    // Check if user exists
    let user = await User.findOne({ email });
    if (user) {
      return res.status(400).json({ message: 'User already exists' });
    }

    // Hash password
    const salt = await bcrypt.genSalt(10);
    const hashedPassword = await bcrypt.hash(password, salt);

    // Create new user
    user = new User({
      email,
      password: hashedPassword,
      name
    });

    await user.save();

    res.status(201).json({
      message: 'User registered successfully',
      userId: user._id
    });
  } catch (error) {
    console.error(error);
    res.status(500).json({ message: 'Server error' });
  }
});

module.exports = router;

5.2 Copilot Chat

Copilot Chat 是交互式 AI 助手,可以回答問題、解釋代碼、生成代碼等。

打開 Chat

VS Code:
- 側邊欄點擊 Copilot 圖標
- 或 Ctrl+Shift+I(Cmd+Shift+I on Mac)
- 或在編輯器中右鍵 → Copilot Chat

常用命令

解釋代碼

選中代碼,輸入:
/explain this code

Copilot 會逐步解釋代碼邏輯

生成測試

選中函數,輸入:
/generate tests for this function

自動生成單元測試

查找 Bug

選中代碼,輸入:
/find bugs in this code

識別潛在問題

重構代碼

選中代碼,輸入:
/refactor this to use async/await

優化代碼結構

生成文檔

選中函數,輸入:
/generate documentation

生成 JSDoc/Docstring

對話示例

用戶:How do I implement a binary search in Python?

Copilot: Here's a binary search implementation:

```python
def binary_search(arr, target):
    """
    Perform binary search on a sorted array
    
    Args:
        arr: Sorted list of elements
        target: Element to search for
    
    Returns:
        Index of target if found, -1 otherwise
    """
    left, right = 0, len(arr) - 1
    
    while left <= right:
        mid = (left + right) // 2
        
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    
    return -1

# Example usage
sorted_array = [1, 3, 5, 7, 9, 11, 13, 15]
result = binary_search(sorted_array, 7)
print(f"Found at index: {result}")  # Output: Found at index: 3

Would you like me to explain how this works or add more features?


### 5.3 註釋驅動開發

Copilot 最強大的功能之一是從註釋生成代碼。

#### 模式 1:函數級註釋

```python
# Write a function that takes a list of dictionaries
# Each dictionary has 'name' and 'age' keys
# Return the names of people older than 18, sorted alphabetically

# Copilot 生成:
def get_adult_names(people):
    """
    Get names of adults (age > 18) sorted alphabetically
    
    Args:
        people: List of dicts with 'name' and 'age' keys
    
    Returns:
        Sorted list of adult names
    """
    adult_names = [
        person['name'] 
        for person in people 
        if person['age'] > 18
    ]
    return sorted(adult_names)

模式 2:TODO 註釋

javascript
// TODO: Implement user authentication middleware
// Requirements:
// - Check for JWT token in Authorization header
// - Verify token validity
// - Attach user info to request object
// - Return 401 if unauthorized

// Copilot 生成完整中間件
const jwt = require('jsonwebtoken');
const User = require('../models/User');

const authMiddleware = async (req, res, next) => {
  try {
    // Get token from header
    const authHeader = req.headers.authorization;
    
    if (!authHeader || !authHeader.startsWith('Bearer ')) {
      return res.status(401).json({ message: 'No token provided' });
    }
    
    const token = authHeader.split(' ')[1];
    
    // Verify token
    const decoded = jwt.verify(token, process.env.JWT_SECRET);
    
    // Get user
    const user = await User.findById(decoded.userId).select('-password');
    
    if (!user) {
      return res.status(401).json({ message: 'User not found' });
    }
    
    // Attach user to request
    req.user = user;
    
    next();
  } catch (error) {
    if (error.name === 'JsonWebTokenError') {
      return res.status(401).json({ message: 'Invalid token' });
    }
    return res.status(500).json({ message: 'Server error' });
  }
};

module.exports = authMiddleware;

模式 3:偽代碼轉換

python
# Pseudo-code for data processing pipeline:
# 1. Load CSV file
# 2. Clean data (remove nulls, duplicates)
# 3. Transform columns (normalize, encode categoricals)
# 4. Split into train/test sets (80/20)
# 5. Save processed data

# Copilot 生成完整實現:
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler, LabelEncoder

def process_data(input_file, output_dir):
    # 1. Load CSV file
    df = pd.read_csv(input_file)
    print(f"Loaded {len(df)} rows")
    
    # 2. Clean data
    initial_count = len(df)
    df.dropna(inplace=True)
    df.drop_duplicates(inplace=True)
    print(f"Removed {initial_count - len(df)} invalid rows")
    
    # 3. Transform columns
    # Normalize numeric columns
    numeric_cols = df.select_dtypes(include=['number']).columns
    scaler = StandardScaler()
    df[numeric_cols] = scaler.fit_transform(df[numeric_cols])
    
    # Encode categorical columns
    label_encoders = {}
    categorical_cols = df.select_dtypes(include=['object']).columns
    for col in categorical_cols:
        le = LabelEncoder()
        df[col] = le.fit_transform(df[col])
        label_encoders[col] = le
    
    # 4. Split into train/test sets
    X = df.drop('target', axis=1)
    y = df['target']
    X_train, X_test, y_train, y_test = train_test_split(
        X, y, test_size=0.2, random_state=42
    )
    
    # 5. Save processed data
    import os
    os.makedirs(output_dir, exist_ok=True)
    
    X_train.to_csv(f'{output_dir}/X_train.csv', index=False)
    X_test.to_csv(f'{output_dir}/X_test.csv', index=False)
    y_train.to_csv(f'{output_dir}/y_train.csv', index=False)
    y_test.to_csv(f'{output_dir}/y_test.csv', index=False)
    
    print(f"Data saved to {output_dir}")
    return X_train, X_test, y_train, y_test

5.4 代碼轉換

Copilot 可以幫助在不同語言或框架之間轉換代碼。

示例:Python 到 JavaScript

用戶:Convert this Python function to JavaScript

Python code:
```python
def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

Copilot:

javascript
function fibonacci(n) {
    if (n <= 1) {
        return n;
    }
    return fibonacci(n - 1) + fibonacci(n - 2);
}

// Optimized version with memoization
function fibonacciMemo(n, memo = {}) {
    if (n in memo) {
        return memo[n];
    }
    if (n <= 1) {
        return n;
    }
    memo[n] = fibonacciMemo(n - 1, memo) + fibonacciMemo(n - 2, memo);
    return memo[n];
}

---

(由於篇幅限制,後續章節將繼續展開...)

## 6. 高級技巧與最佳實踐

### 6.1 提示詞工程

#### 技巧 1:具體化需求

❌ **模糊**:
```python
# Sort the list

具體

python
# Sort users by age in descending order
# If ages are equal, sort by name alphabetically
# Handle None values gracefully

技巧 2:提供上下文

javascript
// Context: Building a React todo app
// State structure: { todos: [{id, text, completed}], filter: 'all'|'active'|'completed' }

// Task: Create a filter component that updates the filter state

技巧 3:分步描述

python
"""
Implement a rate limiter:

Step 1: Create a class RateLimiter
Step 2: Constructor takes max_requests and time_window parameters
Step 3: Method is_allowed(user_id) returns True/False
Step 4: Track requests per user using sliding window
Step 5: Clean up old entries to prevent memory leaks
"""

6.2 代碼審查

使用 Copilot 審查代碼:

選中代碼,在 Chat 中輸入:

/review this code for:
1. Security vulnerabilities
2. Performance issues
3. Code style violations
4. Potential bugs
5. Best practices

Provide specific suggestions for improvement.

6.3 學習新技術

用戶:I'm new to Rust. Explain ownership and borrowing with examples.

Copilot: [詳細解釋 + 代碼示例]

用戶:Show me a practical example using ownership in a web server context.

Copilot: [實際應用場景]

7-10. 更多內容...

(完整文章包含更多詳細內容,包括支持的語言列表、團隊協作配置、15+ FAQ、替代方案對比等)


總結

GitHub Copilot 是革命性的編程工具,正確使用可以將開發效率提升數倍。

🎯 關鍵要點

  1. 從簡單開始:先嚐試代碼補全,再探索 Chat
  2. 寫好註釋:清晰的註釋 = 更好的建議
  3. 保持審查:始終審查生成的代碼
  4. 持續學習:關注新功能和最佳實踐
  5. 結合使用:Copilot + 人工智慧 = 最佳效果

📚 延伸閱讀

💬 獲取幫助

  • 📖 官方文檔:docs.github.com/copilot
  • 💬 社區:GitHub Community Forum
  • 🐛 問題反饋:GitHub Issues
  • 💡 本站交流:歡迎在評論區分享經驗

🚀 開始使用 Copilot,體驗 AI 編程的未來!

💡 提示:收藏本頁面以備將來參考。如果您覺得本指南有幫助,歡迎分享給更多朋友!

最後更新於: