Lưu ý: Bài này dành cho người đã biết cơ bản về Claude Code và muốn hiểu sâu các tính năng nâng cao. Nếu bạn mới bắt đầu, hãy đọc Claude Code cho Người Mới Bắt Đầu trước.
Mục Lục
- Giới thiệu Claude Code
- Git & GitHub — Nền tảng cần hiểu
- Claude Code và Git — Làm việc tự động
- Git Worktrees — Làm việc song song
- Skills — Kỹ năng tái sử dụng
- Commands — Lệnh tắt & Hệ thống lệnh
- Memory — CLAUDE.md & Auto Memory
- Agents & Subagents — Đại lý chuyên biệt
- Kết hợp tất cả — Workflow thực tế
1. Giới thiệu Claude Code
Claude Code là công cụ lập trình AI của Anthropic chạy trực tiếp trong terminal (command line). Thay vì chỉ gợi ý code, Claude Code thực sự làm việc — đọc file, viết file, chạy lệnh, kiểm tra lỗi, tạo branch Git — tất cả đều tự động.
Claude Code không phải là một chatbot thông thường. Nó là một agentic coding tool — nghĩa là nó có khả năng tự mình thực hiện nhiều bước liên tiếp để hoàn thành một nhiệm vụ phức tạp.
Nơi có thể dùng:
- Terminal (macOS, Linux, Windows)
- VS Code (qua extension)
- JetBrains IDEs
- Claude Desktop App
2. Git & GitHub — Nền tảng cần hiểu
Trước khi tìm hiểu Claude Code làm việc với Git như thế nào, bạn cần hiểu các khái niệm cơ bản sau.
Repository (Repo) là gì?
Repository (thường gọi tắt là repo) là một thư mục chứa toàn bộ mã nguồn của một dự án, cùng với toàn bộ lịch sử thay đổi. Hãy nghĩ nó như một “thư mục thông minh” — nó không chỉ lưu file hiện tại mà còn ghi lại mọi thay đổi từ trước đến nay.
my-project/ <- đây là repo
├── .git/ <- thư mục đặc biệt Git tạo ra (không chỉnh sửa thủ công)
├── src/
│ └── app.ts
├── tests/
│ └── app.test.ts
└── README.md
Branch là gì?
Branch (nhánh) là một “phiên bản song song” của code. Hãy nghĩ như thế này:
mainbranch = phiên bản chính thức, ổn định, đang chạy trên productionfeature-loginbranch = phiên bản đang phát triển tính năng đăng nhậpfix-bug-123branch = phiên bản đang sửa lỗi số 123
Bạn có thể tạo nhiều branch, làm việc trên từng branch độc lập, rồi merge (gộp) chúng lại khi xong.
Các khái niệm Git cơ bản
| Lệnh/Khái niệm | Nghĩa |
|---|---|
git commit | Lưu một “checkpoint” — ảnh chụp code tại thời điểm này |
git push | Đẩy code từ máy tính lên GitHub |
git pull | Kéo code mới nhất từ GitHub về máy |
git checkout -b tên-branch | Tạo một branch mới và chuyển sang đó |
git merge | Gộp code từ branch này sang branch khác |
| Pull Request (PR) | Yêu cầu review trước khi merge code vào main |
3. Claude Code và Git — Làm việc tự động
Claude Code hiểu Git một cách sâu sắc. Nó không chỉ chạy lệnh Git — nó đọc lịch sử commits để hiểu ngữ cảnh của dự án.
Claude tự động tạo branch mới
Khi bạn yêu cầu Claude thêm tính năng mới, nó sẽ tự động tạo branch mới thay vì làm việc trực tiếp trên main:
# Bạn nói với Claude:
"Thêm tính năng đăng nhập bằng Google"
# Claude tự động chạy:
git checkout -b feature-google-login
# ... làm việc, sửa file, viết code ...
git add .
git commit -m "feat: add Google OAuth login integration"
Claude tuân theo quy ước Conventional Commits khi viết commit message:
feat:— tính năng mớifix:— sửa lỗirefactor:— tái cấu trúc codetest:— thêm/sửa testdocs:— cập nhật tài liệu
Tạo Pull Request tự động
Claude Code tích hợp với GitHub CLI (gh). Khi bạn nói “tạo PR cho tính năng này”, Claude sẽ tự viết title và description dựa trên những gì nó vừa làm.
Resume session từ PR
# Mở lại session đã liên kết với PR số 42:
claude --from-pr 42
Claude sẽ tải lại ngữ cảnh của PR đó và tiếp tục từ đúng chỗ đã dừng.
4. Git Worktrees — Làm việc song song
Đây là một trong những tính năng mạnh mẽ và khác biệt nhất của Claude Code.
Worktree là gì?
Trong Git thông thường, bạn chỉ có thể làm việc trên một branch tại một thời điểm. Git Worktrees giải quyết vấn đề này: bạn có thể có nhiều thư mục làm việc cùng trỏ đến cùng một repo, mỗi thư mục ở một branch khác nhau — tất cả hoạt động song song.
my-project/ <- thư mục chính (branch: main)
.claude/worktrees/
├── feature-auth/ <- worktree 1 (branch: worktree-feature-auth)
├── fix-payment/ <- worktree 2 (branch: worktree-fix-payment)
└── refactor-db/ <- worktree 3 (branch: worktree-refactor-db)
Tạo worktree với Claude Code
# Đặt tên cụ thể:
claude --worktree feature-auth
# Tên tự động (ngẫu nhiên kiểu thơ như: bright-running-fox):
claude --worktree
Hành vi dọn dẹp worktree
| Tình huống | Hành vi |
|---|---|
| Hoàn thành xong, không có thay đổi | Tự động xóa worktree |
| Hoàn thành xong, có thay đổi chưa commit | Hỏi người dùng có muốn giữ không |
Nên thêm
.claude/worktrees/vào.gitignoređể không track chúng.
5. Skills — Kỹ năng tái sử dụng
Skills là các hướng dẫn đóng gói thành module tái sử dụng. Chúng là cách bạn dạy Claude làm một việc cụ thể theo cách của bạn.
Skills = Hướng dẫn + Quy trình (Claude đọc và thực hiện theo)
Commands = Lệnh tắt tích hợp sẵn (như
/compact,/clear)
Cấu trúc của một Skill
Mỗi skill là một thư mục chứa file SKILL.md:
~/.claude/skills/
└── explain-code/
├── SKILL.md <- file chính (bắt buộc)
└── examples/
└── sample.md <- ví dụ mẫu (tùy chọn)
---
name: explain-code
description: Giải thích code bằng sơ đồ và phép so sánh.
---
Khi giải thích code, luôn:
1. Bắt đầu bằng một phép so sánh với đời thực
2. Vẽ sơ đồ ASCII để minh họa luồng/cấu trúc
3. Giải thích từng bước xảy ra
4. Chỉ ra một "cạm bẫy" phổ biến
Vị trí lưu Skills và phạm vi áp dụng
| Vị trí | Phạm vi |
|---|---|
~/.claude/skills/<tên>/ | Tất cả dự án của bạn (cá nhân) |
.claude/skills/<tên>/ | Chỉ dự án hiện tại |
Skills tích hợp sẵn quan trọng
/simplify — Dọn dẹp code vừa viết
Skill này tự động spawn 3 review agent song song: kiểm tra tái sử dụng code, chất lượng code, hiệu quả — rồi tổng hợp và áp dụng các cải tiến.
/simplify focus on memory efficiency
/batch <hướng dẫn> — Thay đổi quy mô lớn song song
/batch migrate src/ from Solid to React
Claude nghiên cứu, chia nhỏ công việc thành 5–30 đơn vị, trình bày kế hoạch để bạn duyệt, rồi spawn một background agent cho mỗi đơn vị trong worktree Git riêng — mỗi agent implement, chạy test, và mở PR.
/loop [khoảng thời gian] <prompt> — Lặp định kỳ
/loop 5m check if the deploy finished
Truyền tham số vào Skill
---
name: fix-issue
---
Sửa GitHub issue $ARGUMENTS theo coding standards của dự án.
Gọi bằng: /fix-issue 123 → $ARGUMENTS = "123"
Nhiều tham số: /migrate-component SearchBar React Vue
Migrate the $0 component from $1 to $2.
Inject động context vào Skill
Cú pháp !`lệnh-shell` chạy shell command trước khi gửi cho Claude:
---
name: pr-summary
context: fork
agent: Explore
allowed-tools: Bash(gh *)
---
## Ngữ cảnh Pull Request
- PR diff: !`gh pr diff`
- PR comments: !`gh pr view --comments`
## Nhiệm vụ
Tóm tắt pull request này...
6. Commands — Lệnh tắt & Hệ thống lệnh
Gõ / trong Claude Code để xem tất cả commands có sẵn.
Session & Context
| Command | Mô tả |
|---|---|
/resume [session] | Mở lại session cũ |
/fork [tên] | Tạo “nhánh” riêng của cuộc trò chuyện |
/compact [hướng dẫn] | Nén lịch sử (tiết kiệm context window) |
/clear | Bắt đầu session mới |
/rewind | Quay lại điểm trước |
/context | Xem lượng context đang dùng |
Git & PR
| Command | Mô tả |
|---|---|
/diff | Diff viewer tương tác |
/pr-comments [PR] | Lấy comments từ GitHub PR |
/review | Review PR về quality, correctness, security |
/security-review | Phân tích lỗ hổng bảo mật |
Keyboard Shortcuts quan trọng
| Phím tắt | Tác dụng |
|---|---|
Ctrl+C | Hủy input hoặc generation |
Ctrl+B | Background task đang chạy |
Ctrl+T | Hiện/ẩn task list |
Ctrl+G | Mở editor để viết prompt dài |
Alt+T | Toggle extended thinking |
Esc Esc | Rewind/summarize |
Bash mode
Gõ ! trước lệnh để chạy trực tiếp trong shell (không qua Claude):
! npm test
! git status
7. Memory — CLAUDE.md & Auto Memory
Claude Code có hai hệ thống bộ nhớ riêng biệt.
CLAUDE.md — Hướng dẫn bạn viết
CLAUDE.md là file markdown bạn tự viết, được đọc vào context window đầu mỗi session.
| Vị trí | Áp dụng cho |
|---|---|
~/.claude/CLAUDE.md | Tất cả dự án của bạn |
./CLAUDE.md | Dự án hiện tại (chia sẻ qua git) |
./CLAUDE.local.md | Chỉ bạn, dự án này (không commit) |
Tạo tự động: Dùng /init — Claude phân tích codebase và tạo file với build commands, conventions.
Import file khác:
See @README for project overview.
See @package.json for npm commands.
Auto Memory — Claude tự ghi nhớ
Claude tự động ghi chú cho mình dựa trên những gì học được từ bạn. 200 dòng đầu của MEMORY.md được load tự động vào mỗi session.
~/.claude/projects/<project>/memory/
├── MEMORY.md
├── debugging.md
└── api-conventions.md
Bạn có thể nói: “Nhớ rằng project này dùng pnpm, không dùng npm” → Claude tự lưu.
8. Agents & Subagents — Đại lý chuyên biệt
Đây là tính năng nâng cao và mạnh mẽ nhất của Claude Code.
Subagent là gì?
Subagent là một phiên bản Claude Code chuyên biệt, có thể có:
- Model riêng (Haiku, Sonnet, Opus)
- Bộ tool riêng
- Memory riêng
- Worktree Git riêng (cô lập hoàn toàn)
Quan trọng: Chỉ thread chính mới có thể spawn subagents. Subagent không thể spawn subagent khác.
Subagents tích hợp sẵn
| Subagent | Model | Tools | Mục đích |
|---|---|---|---|
| Explore | Haiku (nhanh, rẻ) | Read, Grep, Glob (chỉ đọc) | Tìm kiếm codebase nhanh |
| Plan | inherit | Hạn chế | Lập kế hoạch |
Cấu trúc file Subagent
~/.claude/agents/ <- agents cá nhân
.claude/agents/ <- agents dự án
---
name: code-reviewer
description: Review code về quality, correctness và security. Dùng khi cần review thay đổi.
tools: Read, Grep, Glob
model: sonnet
maxTurns: 20
---
Bạn là một code reviewer chuyên nghiệp. Khi review:
1. Kiểm tra correctness — logic có đúng không?
2. Kiểm tra security — có lỗ hổng bảo mật không?
3. Kiểm tra performance — có thể tối ưu không?
Đưa ra nhận xét cụ thể với severity levels (Critical/High/Medium/Low).
Các tùy chọn permissionMode
| Mode | Hành vi |
|---|---|
default | Hỏi trước mỗi tool call |
acceptEdits | Tự động chấp nhận file edits |
dontAsk | Không bao giờ hỏi (tự động approve) |
plan | Chỉ lập kế hoạch, không thực thi |
Isolation với Worktree
isolation: worktree
Subagent được tạo một worktree Git riêng, làm việc hoàn toàn cô lập. Nếu không có thay đổi khi kết thúc: tự động xóa. Nếu có: hỏi người dùng.
Ví dụ subagents thực tế
Code Reviewer — chỉ đọc
---
name: code-reviewer
description: Review code về quality, security. Dùng sau khi implement feature.
tools: Read, Grep, Glob
model: sonnet
---
Review và report vấn đề, không sửa code.
DB Reader — chặn SQL write
---
name: db-reader
description: Query database, CHỈ đọc, không sửa data.
hooks:
PreToolUse:
- matcher: "Bash"
hooks:
- type: block
condition: "echo \"$CLAUDE_TOOL_INPUT\" | grep -qiE 'INSERT|UPDATE|DELETE|DROP'"
blockMessage: "SQL write operations không được phép"
---
Chỉ sử dụng SELECT statements.
Cách Claude tự động chọn subagent
Claude quyết định delegate dựa trên description field. Hãy viết description rõ ràng, có từ khóa mà người dùng tự nhiên nói.
9. Kết hợp tất cả — Workflow thực tế
Phát triển feature lớn với nhiều agent song song
Bạn: "Thêm hệ thống authentication với email/password và OAuth Google"
Claude:
1. Tạo worktree: .claude/worktrees/feature-auth/
2. Spawn song song:
- Explore agent: nghiên cứu codebase hiện tại
- Plan agent: thiết kế kiến trúc
3. Implement: AuthService, UserModel, routes + tests
4. code-reviewer agent: review toàn bộ thay đổi
5. /simplify: dọn dẹp code
6. Create PR: "feat: add email/password and Google OAuth"
Refactor lớn với /batch
/batch migrate all API handlers from Express to Fastify
Claude chia thành 15 đơn vị độc lập → 15 background agents chạy song song, mỗi agent trong worktree riêng → mỗi agent tạo PR riêng khi xong.
Debug với memory
Bạn: "Tại sao auth middleware bị fail?"
Claude (với debugger agent):
1. Đọc MEMORY.md: "Project dùng JWT RS256, secret stored in JWT_PRIVATE_KEY"
(đã ghi nhớ từ session trước)
2. Đọc error logs => phát hiện JWT_PRIVATE_KEY không load đúng trong test env
3. Fix: cập nhật test setup
4. Ghi nhớ: "JWT tests cần mock process.env.JWT_PRIVATE_KEY"
Bài viết được cập nhật lần cuối: 13/03/2026. Thông tin dựa trên tài liệu chính thức từ Anthropic.
Bạn muốn trao đổi thêm về chủ đề này?
Đội ngũ INNOMOUNT SDS sẵn sàng tư vấn miễn phí cho doanh nghiệp của bạn.
Liên Hệ Tư Vấn →