เครื่องมือและคำสั่ง
รู้จักเครื่องมือหลัก คำสั่ง และวิธีเรียกใช้งาน
บทที่ 2 | เครื่องมือที่ใช้ร่วมกับ Claude Code กลุ่มเป้าหมาย: นักพัฒนาที่ต้องการใช้ Claude Code อย่างมืออาชีพ — ทุกระดับ
Editor Integration — การเชื่อมต่อกับ Code Editor
Claude Code ทำงานลื่นไหลที่สุดเมื่อใช้คู่กับ Code Editor ที่ดี แต่ละ Editor มีวิธีติดตั้งและ Login แตกต่างกัน บทนี้จะอธิบายทีละตัวแบบละเอียด
| VS Code (Visual Studio Code) |
|---|
VS Code เป็น Editor ที่ได้รับความนิยมสูงสุดในโลก ฟรี และรองรับ Claude Code ได้ดีมากผ่านหลายวิธี
วิธีที่ 1 — ใช้ผ่าน Integrated Terminal (ไม่ต้องติดตั้งเพิ่ม)
| 1 | ดาวน์โหลดและติดตั้ง VS Code ไปที่ code.visualstudio.com แล้วดาวน์โหลดตามระบบปฏิบัติการ |
|---|
| 2 | เปิดโฟลเดอร์โปรเจค File → Open Folder หรือลาก Folder มาวางที่หน้าต่าง VS Code |
|---|
| 3 | เปิด Terminal กด Ctrl+` (backtick) หรือ View → Terminal จะได้ Terminal ที่อยู่ในโฟลเดอร์โปรเจคทันที |
|---|
| 4 | รัน Claude Code พิมพ์ claude ใน Terminal แล้วกด Enter เริ่มสั่งงานได้เลย |
|---|
# เปิด Terminal ใน VS Code แล้วรัน
claude
# หรือใช้แบบ One-shot
claude -p "อธิบายไฟล์ @src/app.ts ให้หน่อย"
วิธีที่ 2 — ติดตั้ง Claude Extension (แนะนำ)
Extension ทำให้ Claude ปรากฏใน Sidebar ของ VS Code ใช้งานได้โดยไม่ต้องสลับไปที่ Terminal
ขั้นตอนติดตั้งและ Login
กด Ctrl+Shift+X เพื่อเปิด Extensions Marketplace
ค้นหา "Claude" หรือ "Anthropic" แล้วเลือก Claude Extension (โดย Anthropic)
กด Install แล้วรอให้ติดตั้งเสร็จ
VS Code จะขึ้น popup ให้ Sign in → คลิก “Sign in with Claude.ai”
เบราว์เซอร์จะเปิดขึ้น Login ด้วยบัญชี Anthropic แล้วกด Authorize
กลับมา VS Code จะเห็นไอคอน Claude ที่ Sidebar ด้านซ้าย
💡 Login ด้วย API Key แทน Account
ถ้าไม่ต้องการ Login ด้วย Account ให้เปิด Settings (Ctrl+,) ค้นหา “Claude API Key” แล้วใส่ Key โดยตรง เหมาะสำหรับการใช้งานในองค์กร
วิธีที่ 3 — ติดตั้ง Continue Extension (รองรับหลาย Model)
Continue เป็น Extension ยอดนิยมที่รองรับ Claude และ Model อื่นๆ มีฟีเจอร์ครบกว่า
ค้นหา “Continue” ใน Marketplace แล้วติดตั้ง
กด Ctrl+Shift+P แล้วพิมพ์ “Continue: Open Config” เพื่อเปิดไฟล์ config.json
เพิ่ม Claude เป็น Provider ดังนี้:
{
"models": [
{
"title": "Claude Sonnet 4",
"provider": "anthropic",
"model": "claude-sonnet-4",
"apiKey": "sk-ant-api03-xxxxxxxxxx"
}
],
"tabAutocompleteModel": {
"title": "Claude Haiku",
"provider": "anthropic",
"model": "claude-haiku-4-5"
}
}
บันทึกไฟล์ กด Ctrl+L เพื่อเปิด Chat กับ Claude ใน Sidebar
💡 Shortcut ที่ใช้บ่อยใน Continue
Ctrl+L = เปิด Chat | Ctrl+Shift+L = ส่งโค้ดที่เลือกไปถาม Claude | Ctrl+I = Inline Edit โค้ดที่ cursor อยู่
| Cursor — AI-First Editor |
|---|
Cursor คือ Code Editor ที่ Fork มาจาก VS Code และออกแบบมาสำหรับ AI โดยเฉพาะ มี Claude ฝังอยู่ใน UI ตั้งแต่ต้น ไม่ต้องติดตั้ง Extension เพิ่ม
การติดตั้ง Cursor
| 1 | ดาวน์โหลด Cursor ไปที่ cursor.com → Download for [ระบบปฏิบัติการ] ไฟล์ขนาดประมาณ 200MB |
|---|
| 2 | ติดตั้งและเปิดโปรแกรม ติดตั้งเหมือน App ทั่วไป เมื่อเปิดครั้งแรกจะถามว่าต้องการ Import Settings จาก VS Code ไหม |
|---|
| 3 | Login และตั้งค่า Claude Cursor มี Claude ในตัว แต่ถ้าต้องการใช้ API Key ของตัวเองให้ไปที่ Settings → Models |
|---|
ตั้งค่าให้ Cursor ใช้ Claude API Key ของตัวเอง
โดย default Cursor จะใช้ Credits ของ Cursor เอง แต่ถ้าต้องการใช้ API Key ส่วนตัว (ประหยัดกว่าและยืดหยุ่นกว่า):
เปิด Cursor → Settings (Ctrl+Shift+J) → Models
เลื่อนลงหา Claude ในหมวด “API Keys”
เปิด Toggle “Use your own API key” แล้วใส่ Anthropic API Key
เลือก Model ที่ต้องการใช้เป็น Default
# ตั้งค่าใน .env ของโปรเจค (ทำงานกับ Cursor Composer ได้ด้วย)
ANTHROPIC_API_KEY=sk-ant-api03-xxxxxxxxxx
ฟีเจอร์สำคัญของ Cursor
| ฟีเจอร์ | Shortcut | ทำอะไร |
|---|---|---|
| Chat | Ctrl+L | เปิด Panel คุยกับ Claude ขณะเขียนโค้ด |
| Composer | Ctrl+I | สั่งให้ Claude แก้หลายไฟล์พร้อมกันใน Project |
| Inline Edit | Ctrl+K | แก้โค้ดที่ Highlight อยู่โดยตรงด้วย Claude |
| Codebase Chat | Ctrl+Shift+L | ถาม Claude เรื่อง Codebase ทั้งโปรเจค |
| Tab Complete | Tab | รับ AI Suggestion ขณะพิมพ์โค้ด |
💡 Cursor Rules — เทียบเท่า CLAUDE.md
สร้างไฟล์ .cursorrules ที่ root ของโปรเจค ใส่ context ของโปรเจค เช่น tech stack, conventions Cursor จะอ่านทุกครั้ง เหมือน CLAUDE.md
| JetBrains IDEs (IntelliJ, PyCharm, WebStorm, GoLand…) |
|---|
JetBrains ผลิต IDE ระดับ Professional สำหรับแต่ละภาษา ทุกตัวใช้วิธีติดตั้ง Claude เหมือนกัน
IDE แต่ละตัวใช้กับภาษาอะไร
| IDE | ภาษาหลัก | ใครควรใช้ |
|---|---|---|
| IntelliJ IDEA | Java, Kotlin | Java/Android Developer |
| PyCharm | Python | Python, Data Science, ML/AI |
| WebStorm | JavaScript, TypeScript | Frontend, Node.js Developer |
| GoLand | Go | Go Developer |
| PhpStorm | PHP | PHP Developer |
| RubyMine | Ruby | Ruby on Rails Developer |
| CLion | C, C++ | Systems, Embedded Developer |
ติดตั้ง Claude Plugin บน JetBrains
| 1 | เปิด Plugin Marketplace ไปที่ Settings (Ctrl+Alt+S) → Plugins → Marketplace |
|---|
| 2 | ค้นหาและติดตั้ง Plugin ค้นหา “Claude” หรือ “Anthropic” แล้วกด Install จาก Anthropic |
|---|
| 3 | Restart IDE กด Restart IDE เพื่อให้ Plugin มีผล |
|---|
| 4 | Login / ใส่ API Key ไปที่ Settings → Tools → Claude → ใส่ API Key หรือกด “Login with Claude.ai” |
|---|
# หรือตั้ง API Key ผ่าน Environment Variable
# macOS/Linux: เพิ่มใน ~/.zshrc
export ANTHROPIC_API_KEY="sk-ant-api03-xxxx"
# Windows PowerShell
$env:ANTHROPIC_API_KEY = "sk-ant-api03-xxxx"
การใช้งาน Claude ใน JetBrains
Alt+C → เปิด Claude Chat Panel ด้านขวา
คลิกขวาที่โค้ดที่ Highlight → Claude → Ask Claude / Explain / Refactor
Alt+Shift+C → Inline Edit โค้ดที่เลือก
เปิด Claude Tool Window แล้วลากไฟล์จาก Project Explorer มาใส่ใน Chat ได้
💡 ใช้ AI Assistant ร่วมกับ Claude
JetBrains มี AI Assistant ของตัวเอง สามารถใช้ทั้งสองพร้อมกันได้ โดย AI Assistant ช่วยเรื่อง IDE-specific เช่น Refactor, Rename ส่วน Claude ช่วยงาน Logic และ Architecture
| Neovim — สำหรับผู้ชอบ Terminal |
|---|
Neovim คือ Text Editor ที่ทำงานใน Terminal เหมาะสำหรับ Developer ที่ชอบ Keyboard-driven workflow
ติดตั้ง Claude.nvim Plugin
-- เพิ่มใน ~/.config/nvim/lua/plugins/claude.lua
-- ใช้ lazy.nvim เป็น Plugin Manager
return {
"pasky/claude.vim",
config = function()
vim.g.claude_api_key = os.getenv("ANTHROPIC_API_KEY")
vim.g.claude_model = "claude-sonnet-4"
end
}
-- หรือใช้ avante.nvim ที่ฟีเจอร์ครบกว่า
return {
"yetone/avante.nvim",
opts = {
provider = "claude",
claude = {
model = "claude-sonnet-4",
api_key_name = "ANTHROPIC_API_KEY"
}
}
}
💡 แนะนำ: ใช้ Claude Code CLI แทน
สำหรับ Neovim user แนะนำให้ใช้ Claude Code CLI ใน Terminal แยกต่างหาก (tmux split) แทนการติดตั้ง Plugin เพราะ Claude Code CLI ให้ประสบการณ์ที่ดีกว่าและอัปเดตบ่อยกว่า
MCP (Model Context Protocol) — คู่มือฉบับสมบูรณ์
MCP คือมาตรฐานเปิดที่ Anthropic สร้างขึ้น ช่วยให้ Claude เชื่อมต่อกับเครื่องมือและบริการภายนอกได้ เปรียบเหมือน “ปลั๊กอิน” ที่ขยายความสามารถ Claude ออกไปได้ไม่จำกัด
โครงสร้างของ MCP
MCP ทำงานแบบ Client-Server: Claude Code เป็น Client ส่วน MCP Server เป็นตัวกลางที่คุยกับบริการภายนอก การตั้งค่าทั้งหมดอยู่ที่ ~/.claude/settings.json
// โครงสร้างพื้นฐานของ ~/.claude/settings.json
{
"mcpServers": {
"ชื่อ-server": {
"command": "คำสั่งที่รัน server",
"args": ["argument1", "argument2"],
"env": {
"API_KEY": "ค่า environment variable"
}
}
}
}
| MCP Filesystem — อ่าน/เขียนไฟล์ในเครื่อง |
|---|
ให้ Claude เข้าถึงไฟล์นอก Working Directory ได้ เหมาะสำหรับค้นหาและแก้ไขไฟล์ข้ามโปรเจค
// ~/.claude/settings.json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/john/Projects",
"/Users/john/Documents/notes"
]
}
}
}
ตัวอย่างการใช้งาน
> หาไฟล์ทั้งหมดที่นามสกุล .env ใน /Users/john/Projects
> อ่าน README ของทุกโปรเจคใน /Projects แล้วสรุปให้
> เปรียบเทียบ package.json ระหว่าง ProjectA และ ProjectB
⚠️ ระวังสิทธิ์การเข้าถึง
ระบุเฉพาะโฟลเดอร์ที่ต้องการให้ Claude เข้าถึง อย่าใส่ / หรือ /home ทั้งหมด เพราะ Claude จะเห็นทุกไฟล์ในเครื่อง
| MCP GitHub — จัดการ Repository บน GitHub |
|---|
ให้ Claude อ่าน Issues, Pull Request, โค้ด และ Actions บน GitHub ได้โดยตรง
ขั้นตอนติดตั้ง
ไปที่ github.com → Settings → Developer settings → Personal access tokens → Tokens (classic)
กด Generate new token แล้วเลือก scope: repo, read:org, read:user
Copy token ที่ได้
เพิ่มใน settings.json:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
}
}
}
}
ตัวอย่างการใช้งาน
> แสดง Issues ทั้งหมดที่ยังเปิดอยู่ใน repo myorg/myproject
> สรุป Pull Request #42 ว่าเปลี่ยนอะไรบ้าง
> หา Issue ที่เกี่ยวกับ "authentication" และเสนอวิธีแก้
> ดู GitHub Actions workflow ล่าสุดว่า fail ตรงไหน
| MCP Browser — ค้นหาและเปิดเว็บได้ |
|---|
ให้ Claude เปิดเว็บไซต์ กรอกฟอร์ม คลิกปุ่ม และดึงข้อมูลจากเว็บได้แบบ Real-time ผ่าน Playwright
# ติดตั้ง Playwright ก่อน
npx playwright install chromium
// settings.json
{
"mcpServers": {
"browser": {
"command": "npx",
"args": ["@playwright/mcp"]
}
}
}
ตัวอย่างการใช้งาน
> เปิด https://npmjs.com/package/react แล้วบอกว่า version ล่าสุดคืออะไร
> ค้นหา "Next.js 15 new features" ใน Google แล้วสรุปให้
> เปิด docs.anthropic.com แล้วหาวิธีใช้ Tool Use API
> ตรวจสอบว่าเว็บ mycompany.com โหลดได้ปกติไหม
| MCP Database — เชื่อมต่อฐานข้อมูล |
|---|
ให้ Claude Query ฐานข้อมูลได้โดยตรง รองรับ PostgreSQL, MySQL, SQLite
PostgreSQL
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://user:password@localhost:5432/mydb"
]
}
}
}
SQLite
{
"mcpServers": {
"sqlite": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sqlite",
"--db-path", "/path/to/database.db"
]
}
}
}
ตัวอย่างการใช้งาน
> แสดง Schema ของ table ทั้งหมดในฐานข้อมูล
> หา User ที่ login ครั้งสุดท้ายเมื่อ 30 วันที่แล้ว
> วิเคราะห์ Performance ของ Query นี้และเสนอวิธี Optimize
> สร้าง Migration Script เพื่อเพิ่ม column "deleted_at" ใน users table
⚠️ ใช้ Read-only User เสมอ
สำหรับ Production Database ให้ Claude เชื่อมต่อด้วย User ที่มีสิทธิ์แค่ SELECT เท่านั้น ป้องกันการแก้ไขข้อมูลโดยไม่ตั้งใจ
| MCP Slack — อ่านและส่งข้อความใน Slack |
|---|
// สร้าง Slack App ที่ api.slack.com → Your Apps
// เพิ่ม scopes: channels:read, chat:write, files:read
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-xxxxxxxxxxxx",
"SLACK_TEAM_ID": "T0XXXXXXXXX"
}
}
}
}
ตัวอย่างการใช้งาน
> สรุปข้อความใน #general ช่วง 2 วันที่ผ่านมา
> หาข้อความที่พูดถึง "deployment issue" ใน #engineering
> ส่งข้อความแจ้ง deploy เสร็จแล้วไปที่ #releases
| MCP Brave Search — ค้นหาอินเทอร์เน็ตแบบ Privacy-friendly |
|---|
// สมัคร API Key ที่ brave.com/search/api
{
"mcpServers": {
"brave-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-brave-search"],
"env": {
"BRAVE_API_KEY": "BSA-xxxxxxxxxxxxxxxxxx"
}
}
}
}
สรุปการจัดการ MCP
# ดู MCP Server ที่เชื่อมต่ออยู่
/mcp
# Restart MCP Server (เมื่อแก้ settings.json แล้ว)
/mcp restart
# ดู logs ของ MCP (debug เมื่อมีปัญหา)
/mcp logs filesystem
💡 ใช้ MCP หลายตัวพร้อมกัน
สามารถเพิ่ม MCP Server หลายตัวใน settings.json พร้อมกันได้ Claude จะเลือกใช้ tool ที่เหมาะสมเองอัตโนมัติ ไม่ต้องระบุทุกครั้ง
Git ร่วมกับ Claude Code — คู่มือฉบับสมบูรณ์
Git เป็นทักษะสำคัญที่ Developer ทุกคนต้องใช้ การใช้ Claude Code ร่วมกับ Git ช่วยให้จัดการโค้ด เขียน Commit Message และ Review Code ได้เร็วและถูกต้องกว่าเดิมมาก
พื้นฐาน Git ที่ต้องรู้
| Repository (Repo) | โฟลเดอร์โปรเจคที่ Git ดูแล มีโฟลเดอร์ .git ซ่อนอยู่ |
|---|---|
| Commit | การบันทึก snapshot ของโค้ด ณ เวลานั้น มี ID เป็น hash |
| Branch | สาขาของ Commit history ใช้พัฒนาฟีเจอร์แยกโดยไม่กระทบ main |
| Staging Area | พื้นที่พักไฟล์ก่อน Commit (git add นำไฟล์เข้ามาที่นี่) |
| Remote | Repository บน Server เช่น GitHub, GitLab ใช้ push/pull ข้อมูล |
| HEAD | ตำแหน่งปัจจุบันที่อยู่ใน history โดยปกติคือ Commit ล่าสุด |
| Working Tree | ไฟล์ในโฟลเดอร์ปัจจุบัน ยังไม่ถูก Commit |
Workflow ที่แนะนำ: Claude Code + Git
Workflow มาตรฐานที่ใช้ Claude ช่วยในทุกขั้นตอน:
| 1 | เริ่ม Feature ใหม่: สร้าง Branch สร้าง Branch ใหม่สำหรับแต่ละ Feature เสมอ ไม่ทำงานบน main โดยตรง |
|---|
# สร้างและสลับไปที่ Branch ใหม่
git checkout -b feature/user-authentication
# หรือใช้คำสั่งใหม่
git switch -c feature/user-authentication
# ตั้งชื่อ Branch ให้สื่อความหมาย เช่น
# feature/xxx = ฟีเจอร์ใหม่
# fix/xxx = แก้บัก
# refactor/xxx = ปรับโครงสร้างโค้ด
# docs/xxx = อัปเดตเอกสาร
| 2 | พัฒนาโค้ดร่วมกับ Claude ใช้ Claude Code ช่วยเขียนและแก้ไขโค้ด |
|---|
# เริ่ม Claude Code
claude
# สั่งงาน Claude
> สร้าง JWT Authentication middleware สำหรับ Express.js
ให้มี refresh token และ revocation ด้วย
| 3 | ดูการเปลี่ยนแปลงก่อน Commit ตรวจสอบว่าโค้ดที่เปลี่ยนถูกต้องก่อนบันทึก |
|---|
# ดูไฟล์ที่เปลี่ยนแปลง
git status
# ดูรายละเอียดที่เปลี่ยน (Diff)
git diff
# ให้ Claude วิเคราะห์การเปลี่ยนแปลง
git diff | claude -p "รีวิวการเปลี่ยนแปลงนี้ มีปัญหาอะไรไหม"
| 4 | เพิ่มไฟล์เข้า Staging Area เลือกไฟล์ที่ต้องการ Commit |
|---|
# เพิ่มไฟล์ทั้งหมด
git add .
# เพิ่มเฉพาะบางไฟล์
git add src/middleware/auth.js src/utils/jwt.js
# เพิ่มทีละบางส่วนของไฟล์ (Interactive)
git add -p src/app.js
| 5 | เขียน Commit Message ด้วย Claude ให้ Claude ช่วยเขียน Commit Message ที่ดีจาก Diff |
|---|
# วิธีที่แนะนำ: ให้ Claude เขียน Commit Message
git diff --staged | claude -p "เขียน commit message ตาม
Conventional Commits format สำหรับการเปลี่ยนแปลงนี้"
# ตัวอย่าง Output ที่ Claude จะเขียนให้
# feat(auth): add JWT authentication middleware
#
# - Implement access token (15min) and refresh token (7d)
# - Add token revocation via Redis blacklist
# - Include rate limiting (10 requests/min)
| 6 | Commit โค้ด บันทึก Commit ด้วย Message ที่ Claude ช่วยเขียน |
|---|
# Commit ด้วย Message โดยตรง
git commit -m "feat(auth): add JWT authentication middleware"
# Commit พร้อมเปิด Editor เขียน Message ละเอียด
git commit
# Commit ไฟล์ทั้งหมดที่ติดตามอยู่ + บันทึก (ข้าม git add)
git commit -am "fix: correct token expiry calculation"
| 7 | Push ขึ้น Remote ส่งโค้ดขึ้น GitHub/GitLab |
|---|
# Push Branch ใหม่ครั้งแรก
git push -u origin feature/user-authentication
# Push ครั้งต่อไป (จำ Remote ไว้แล้ว)
git push
เทคนิค Git ที่ใช้ประจำร่วมกับ Claude
1. Code Review ก่อน Merge
ให้ Claude รีวิวโค้ดทั้งหมดใน Branch ก่อนสร้าง Pull Request
# รีวิวทุกอย่างที่แตกต่างจาก main
git diff main...feature/my-feature | claude -p \
"รีวิวโค้ดนี้แบบ Senior Developer ตรวจสอบ
security, performance, edge cases และ code quality"
# รีวิวเฉพาะไฟล์ที่เปลี่ยน
git diff main -- src/api/auth.js | claude -p "รีวิวส่วน auth นี้"
2. เขียน PR Description อัตโนมัติ
# สร้าง PR Description จาก Commit history
git log main..HEAD --oneline | \
claude -p "เขียน Pull Request description จาก commits เหล่านี้
รวมถึง Summary, Changes, Testing steps และ Screenshots needed"
3. แก้ Merge Conflict ด้วย Claude
เมื่อเกิด Conflict ระหว่าง Merge ให้ Claude ช่วยแก้ได้เลย
# สมมติ merge แล้วเกิด conflict
git merge main
# Auto-merging src/utils/auth.js
# CONFLICT (content): Merge conflict in src/utils/auth.js
# ให้ Claude แก้ Conflict
cat src/utils/auth.js | claude -p \
"แก้ merge conflict นี้ให้ถูกต้อง
รักษา logic ของทั้งสอง branch ไว้"
# หรือสั่งใน Claude Code session
> แก้ merge conflict ใน @src/utils/auth.js
ให้รักษา feature ของทั้ง main และ branch ปัจจุบัน
4. Git Bisect หาต้นเหตุของ Bug
Git Bisect ช่วยหา Commit ที่ทำให้เกิด Bug ด้วย Binary Search Claude ช่วยวิเคราะห์ผลได้
# เริ่ม bisect
git bisect start
git bisect bad # Commit ปัจจุบัน = มีบัก
git bisect good v1.0.0 # Commit ที่รู้ว่าดี
# Git จะ checkout Commit กลาง ให้ทดสอบแล้วบอกผล
git bisect good # ถ้า commit นี้ไม่มีบัก
git bisect bad # ถ้า commit นี้มีบัก
# ทำซ้ำจนพบต้นเหตุ แล้วให้ Claude วิเคราะห์
git show <bad-commit-hash> | claude -p "อธิบายว่า commit นี้ทำให้เกิดบักได้อย่างไร"
# จบ bisect
git bisect reset
5. Stash — เก็บงานชั่วคราว
เมื่อต้องสลับ Branch กะทันหันแต่งานยังไม่เสร็จ ใช้ Stash เก็บไว้ก่อน
# เก็บงานปัจจุบันไว้ชั่วคราว
git stash push -m "งาน auth middleware ยังไม่เสร็จ"
# สลับ Branch ไปแก้งานด่วน
git switch hotfix/payment-bug
# ... แก้บัก commit push ...
# กลับมาต่องานเดิม
git switch feature/user-authentication
git stash pop
# ดู stash ที่มีอยู่
git stash list
6. Interactive Rebase — จัดเรียง Commit
ใช้ก่อน Push เพื่อทำให้ Commit history สะอาดและอ่านง่าย
# แก้ไข 5 commits ล่าสุด
git rebase -i HEAD~5
# Commands ที่ใช้บ่อยใน editor:
# pick = เก็บ commit นี้ไว้
# reword = เก็บไว้แต่แก้ message
# squash = รวมกับ commit ก่อนหน้า
# drop = ลบ commit ออก
# ตัวอย่าง: รวม 3 commits เข้าเป็น 1
# pick abc1234 feat: start auth
# squash def5678 feat: add refresh token
# squash ghi9012 feat: add revocation
# ให้ Claude เขียน Squash message
git log --oneline HEAD~3..HEAD | \
claude -p "เขียน commit message สำหรับการรวม commits เหล่านี้"
⚠️ ห้าม Rebase Branch ที่ Push ไปแล้ว
Rebase เปลี่ยน Commit Hash ทำให้ history ไม่ตรงกับ Remote จะทำให้ทีมมีปัญหา ทำ Rebase เฉพาะ Commit ที่ยังไม่ได้ Push เท่านั้น
7. Git Hook + Claude (Automation)
สร้าง Git Hook ให้ Claude รีวิวโค้ดอัตโนมัติทุกครั้งก่อน Commit
# สร้างไฟล์ .git/hooks/pre-commit
#!/bin/bash
# ดึง diff ของสิ่งที่จะ commit
DIFF=$(git diff --staged)
# ถ้ามีการเปลี่ยนแปลง ให้ Claude รีวิว
if [ -n "$DIFF" ]; then
echo "🤖 Claude กำลังรีวิวโค้ด..."
REVIEW=$(echo "$DIFF" | claude -p \
"รีวิวโค้ดนี้ ถ้ามีปัญหา critical ให้บอกและ exit 1")
echo "$REVIEW"
fi
# ให้ไฟล์ run ได้
chmod +x .git/hooks/pre-commit
8. Conventional Commits — มาตรฐาน Commit Message
มาตรฐานการเขียน Commit Message ที่นิยมใช้ในโปรเจคระดับ Professional
| Type | ใช้เมื่อไหร่ | ตัวอย่าง |
|---|---|---|
| feat | เพิ่มฟีเจอร์ใหม่ | feat(auth): add OAuth2 login |
| fix | แก้บัก | fix(api): correct status code on 404 |
| refactor | ปรับโครงสร้างโค้ด | refactor(db): optimize query builder |
| docs | อัปเดตเอกสาร | docs(readme): add installation steps |
| test | เพิ่ม/แก้ Tests | test(auth): add JWT expiry test cases |
| chore | งาน maintenance อื่นๆ | chore(deps): bump react to 19.0.0 |
| perf | ปรับปรุง Performance | perf(search): add Redis caching |
| style | แก้ formatting ไม่เปลี่ยน logic | style: fix indentation in utils |
| ci | แก้ CI/CD config | ci: add staging deploy workflow |
# ให้ Claude เขียน Conventional Commit message
git diff --staged | claude -p \
"เขียน commit message ตาม Conventional Commits format
(feat/fix/refactor/docs/test/chore/perf/style/ci)
มี scope และ body อธิบายรายละเอียด"
คำสั่ง Git ฉุกเฉินที่ต้องรู้
| git restore | ยกเลิกการเปลี่ยนแปลงในไฟล์ กลับเป็น Commit ล่าสุด |
|---|---|
| git restore —staged | นำไฟล์ออกจาก Staging Area (ยกเลิก git add) |
| git commit —amend | แก้ไข Commit ล่าสุด (message หรือเนื้อหา) ก่อน Push |
| git reset —soft HEAD~1 | ยกเลิก 1 Commit แต่เก็บโค้ดไว้ใน Staging |
| git reset —hard HEAD~1 | ยกเลิก 1 Commit และลบโค้ดทิ้ง (อันตราย!) |
| git reflog | ดูประวัติทุก action แม้แต่ที่ลบไปแล้ว ใช้กู้คืน |
| git cherry-pick | นำ Commit เดียวมาใช้ใน Branch ปัจจุบัน |
| git revert | สร้าง Commit ใหม่ที่ยกเลิก Commit เก่า (ปลอดภัยกว่า reset) |
💡 ใช้ Claude ช่วยในสถานการณ์ฉุกเฉิน
ถ้าทำผิดใน Git แล้วไม่รู้จะแก้ยังไง ให้รัน git status และ git log —oneline -10 แล้วส่งให้ Claude บอกว่าเกิดอะไรขึ้น Claude จะแนะนำวิธีแก้ที่ปลอดภัยที่สุด
คำศัพท์ประจำบท
| Extension | ส่วนเสริมสำหรับ Code Editor เพิ่มความสามารถพิเศษ |
|---|---|
| Plugin | ส่วนเสริมสำหรับ IDE เช่น JetBrains เรียกว่า Plugin |
| MCP Server | โปรแกรมที่รับคำสั่งจาก Claude แล้วทำงานกับบริการภายนอก |
| Personal Access Token | รหัสลับสำหรับเข้าถึง GitHub API แทนการใช้ Password |
| Repository | โปรเจคที่ Git จัดการอยู่ มีประวัติ Commit ทั้งหมด |
| Branch | สาขาของ Commit history ใช้พัฒนา Feature แยกโดยไม่กระทบ main |
| Merge | การรวม Branch หนึ่งเข้ากับอีก Branch |
| Rebase | การย้าย Commit ไปเริ่มต้นจาก Base ใหม่ ทำให้ history สะอาด |
| Stash | การเก็บงานที่ยังไม่เสร็จไว้ชั่วคราว เพื่อสลับ Branch |
| Staging Area | พื้นที่พักไฟล์ก่อน Commit (git add นำไฟล์เข้ามา) |
| Pull Request (PR) | คำขอรวมโค้ดจาก Branch หนึ่งเข้าอีก Branch พร้อม Review |
| Conventional Commits | มาตรฐาน Commit Message ที่ทำให้อ่านและ Auto-generate Changelog ได้ |
| Git Hook | Script ที่รันอัตโนมัติเมื่อทำ Git action เช่น pre-commit, post-push |
| Conflict | ความขัดแย้งเมื่อสอง Branch แก้ไขบรรทัดเดียวกัน ต้องแก้ด้วยมือ |