🔀

Git 整合實作

Part 8:用 Claude CLI 強化 Git 工作流程

Commit 訊息 Code Review 衝突解決 PR 描述

📝 實作:生成 Commit 訊息

🖥️ 分析變更並生成訊息git diff --staged | claude -p "根據這些變更生成一個清楚的 commit 訊息,使用 conventional commits 格式"
🖥️ 一鍵 commit 腳本#!/bin/bash # smart-commit.sh MESSAGE=$(git diff --staged | claude -p "生成簡潔的 commit 訊息,不要解釋") echo "建議的 commit 訊息: $MESSAGE" read -p "使用這個訊息? (y/n) " confirm if [ "$confirm" = "y" ]; then git commit -m "$MESSAGE" fi

🔍 實作:Code Review

🖥️ 審查待提交的變更git diff | claude "請審查這些程式碼變更: 1. 是否有 bug 或潛在問題? 2. 是否符合最佳實踐? 3. 有什麼改善建議?"
🖥️ 審查特定 commitgit show abc123 | claude "審查這個 commit 的程式碼品質"
🖥️ 比較分支差異git diff main..feature-branch | claude "分析這個功能分支的所有變更"

⚔️ 實作:解決合併衝突

🖥️ 分析衝突# 當發生衝突時 git diff --diff-filter=U | claude "分析這些合併衝突,建議如何解決"
🖥️ 查看衝突檔案cat conflicted-file.js | claude "這個檔案有合併衝突標記,請幫我解決: - 保留兩邊有用的部分 - 確保邏輯正確 - 移除衝突標記"
💡 提示:Claude 會分析 <<<<<<< HEAD 和 >>>>>>> 標記,幫你理解衝突

📋 實作:生成 PR 描述

🖥️ 自動生成 PR 描述git log main..HEAD --oneline | claude -p "根據這些 commits 生成 Pull Request 描述,包含: ## 變更摘要 ## 主要改動 ## 測試方式 ## 相關 Issue"
🖥️ 詳細 PR 描述git diff main..HEAD | claude "為這個 PR 寫詳細描述,包括技術細節和影響範圍"

📊 實作:分析 Git 歷史

🖥️ 分析 commit 歷史git log --oneline -20 | claude "分析最近 20 個 commits 的開發趨勢"
🖥️ 找出熱點檔案git log --pretty=format: --name-only | sort | uniq -c | sort -rn | head -20 | \ claude "這些是最常修改的檔案,分析可能的原因和建議"
🖥️ 分析貢獻者活動git shortlog -sn --all | claude "分析團隊的程式碼貢獻分佈"

🏷️ 實作:Release Notes 生成

🖥️ 生成版本更新說明git log v1.0.0..v1.1.0 --oneline | claude "根據這些 commits 生成使用者友善的 Release Notes: - 新功能 - 修復 - 改善 - 重大變更"
🖥️ 完整 CHANGELOGgit log --since="2024-01-01" --oneline | claude "生成 CHANGELOG.md 格式的更新日誌"

🔧 實作:Git Hooks 整合

🖥️ pre-commit hook#!/bin/bash # .git/hooks/pre-commit # 檢查是否有 TODO 未處理 TODOS=$(git diff --staged | grep -c "TODO") if [ $TODOS -gt 0 ]; then git diff --staged | grep "TODO" | claude -p "發現新增的 TODO,確認是否應該 commit" fi # 簡單的程式碼審查 git diff --staged --diff-filter=AM -- "*.py" | head -500 | \ claude -p "快速檢查這些 Python 程式碼是否有明顯問題" exit 0 # 允許 commit
🎓

Part 8 總結

✅ 你學會了

  • 自動生成 commit 訊息
  • AI 輔助 Code Review
  • 解決合併衝突
  • 生成 PR 描述
  • 分析 Git 歷史
  • Git Hooks 整合

📝 回家作業

  • 建立 smart-commit 腳本
  • 用 Claude 審查一個 PR
  • 生成一份 Release Notes
  • 設定一個 Git Hook
下一單元:Part 9 - 進階功能實作