2026-03-144 phút đọcVI
Review diff và accept thay đổi an toàn
English title: Review Diff and Accept Changes Safely
Bài 13 trong chuỗi 15 bài hướng dẫn Cursor. Đừng accept cả cụm — xem từng thay đổi, accept có chọn lọc. Cursor hiển thị diff (thêm/xóa/sửa) trước khi bạn accept; bạn có thể accept từng file, từng block (hunk), hoặc reject. Kết hợp với chia feature thành bước nhỏ (mỗi bước một diff dễ review) và checkpoint (bài 5) để an toàn khi thử nghiệm. Bài này tóm tắt thói quen review và accept an toàn.
Mở đầu: Xem diff trước khi accept
Agent vừa "thêm validation cho form đăng ký" và sửa ba file: Form.tsx, validation.ts, api.ts. Nếu bạn bấm "Accept all" mà không đọc, có thể một vài dòng trong api.ts không liên quan hoặc sai (vd. đổi nhầm endpoint). Luôn mở diff, đọc lướt từng file và từng đoạn thay đổi; accept những phần đúng, reject hoặc chỉnh tay phần còn lại. Cursor thường cho phép accept theo file hoặc theo hunk — tận dụng để kiểm soát.
1. Đi sâu: Tại sao phải xem diff
Tại sao chủ đề này quan trọng: Agent có thể sửa nhầm file, xóa code cần giữ, hoặc thêm logic không đúng ý. Accept mù = rủi ro cao; sửa sau tốn thời gian.
Hiểu sai thường gặp: Nhiều người nghĩ "Agent đã hiểu đúng rồi". Thực tế Agent có thể hiểu lệch hoặc áp dụng pattern không phù hợp; diff là cơ hội bắt lỗi trước khi thay đổi vào codebase.
Bản chất đúng: Diff = so sánh trạng thái trước và sau (thêm dòng, xóa dòng, sửa dòng). Cursor hiển thị diff theo file; trong mỗi file có thể có nhiều hunk (khối thay đổi). Accept = áp dụng thay đổi vào file; Reject = bỏ thay đổi đó. Accept có chọn lọc = chỉ accept một số file hoặc một số hunk, reject phần còn lại.
2. Khái niệm
- Diff: Khác biệt giữa version cũ và mới (thường hiển thị dạng + thêm / - xóa). Cursor show diff trước khi user accept.
- Hunk: Một khối thay đổi liền nhau trong một file. Có thể accept/reject từng hunk.
- Accept / Reject: Accept = áp dụng thay đổi; Reject = hủy thay đổi đó (giữ nội dung cũ).
3. Workflow: Chia feature và review
- Chia feature thành bước nhỏ — Thay vì "thêm toàn bộ export CSV", chia: bước 1 "thêm endpoint export", bước 2 "thêm nút Export trong UI", bước 3 "test". Mỗi bước Agent sửa ít file → diff ngắn, dễ review.
- Sau mỗi bước: mở diff — Đọc từng file, từng hunk. Accept phần đúng; reject hoặc chỉnh tay phần sai.
- Kết hợp checkpoint — Trước khi accept bước lớn, đã tạo checkpoint (bài 5) thì nếu sau đó phát hiện sai có thể revert.
- Prompt chia nhỏ — Nếu Agent đề xuất sửa quá nhiều file một lúc, có thể nhắc: "Chỉ sửa file X trong bước này; các file khác để bước sau."
4. Ứng dụng
Sau bài này bạn đã biết: luôn xem diff, accept có chọn lọc, chia feature thành bước verify được. Bài tiếp: Cloud Agents — làm việc từ browser hoặc thiết bị khác.
Bài tiếp: Cloud Agents và làm việc đa thiết bị (bài 14).