Claude Code tự động theo dõi các thay đổi file mà Claude thực hiện trong lúc bạn làm việc, cho phép bạn nhanh chóng hoàn tác và quay lại trạng thái trước đó nếu có gì đó đi sai hướng.
Checkpoint hoạt động thế nào
Phần tiêu đề “Checkpoint hoạt động thế nào”Trong khi làm việc với Claude, checkpointing tự động chụp lại trạng thái code của bạn trước mỗi prompt bạn gửi. Lưới an toàn này cho phép bạn theo đuổi các tác vụ quy mô lớn, tham vọng mà vẫn biết rằng bạn luôn có thể quay lại trạng thái code trước đó.
Theo dõi tự động
Phần tiêu đề “Theo dõi tự động”Claude Code theo dõi mọi thay đổi được thực hiện bởi các tool chỉnh sửa file của nó:
- Mỗi prompt bạn gửi tạo ra một checkpoint mới
- Claude Code giữ lại snapshot file cho 100 checkpoint gần nhất trong một phiên. Khi loại bỏ một checkpoint cũ hơn, các file snapshot không còn checkpoint nào tham chiếu tới sẽ bị xóa, ngoại trừ snapshot đầu tiên của mỗi file - cái mà VS Code extension dùng làm baseline cho diff của phiên. Trước v2.1.208, các file snapshot bị thay thế đó vẫn nằm trên đĩa cho tới khi phiên được dọn dẹp.
- Claude Code lưu checkpoint cùng với hội thoại, nên bạn vẫn có thể chạy
/rewindsau khi resume một phiên - Claude Code xóa checkpoint cùng với phiên sau 30 ngày; đổi khoảng thời gian này bằng
cleanupPeriodDays
Rewind và tóm tắt
Phần tiêu đề “Rewind và tóm tắt”Chạy /rewind, hoặc nhấn Esc hai lần khi ô nhập prompt đang trống, để mở menu rewind.
Menu rewind liệt kê từng prompt bạn đã gửi trong phiên. Chọn điểm bạn muốn thao tác, rồi chọn một hành động:
- Restore code and conversation: khôi phục cả code và hội thoại về điểm đó
- Restore conversation: tua lại tới tin nhắn đó nhưng giữ nguyên code hiện tại
- Restore code: hoàn tác các thay đổi file nhưng giữ nguyên hội thoại
- Summarize from here: nén hội thoại từ điểm này trở đi thành một bản tóm tắt, giải phóng không gian context window
- Summarize up to here: nén hội thoại trước điểm này thành bản tóm tắt, giữ nguyên các tin nhắn sau đó
- Never mind: quay lại danh sách tin nhắn mà không thay đổi gì
Hai tùy chọn restore code chỉ xuất hiện khi checkpoint được chọn có thay đổi file được theo dõi để hoàn tác. Nếu không có chỉnh sửa file nào được ghi nhận sau điểm đó, menu chỉ đưa ra Restore conversation, các tùy chọn tóm tắt, và Never mind.
Sau khi restore conversation hoặc chọn Summarize from here, prompt gốc từ tin nhắn được chọn sẽ được khôi phục vào ô nhập để bạn gửi lại hoặc chỉnh sửa.
Chọn Summarize up to here sẽ đưa bạn tới cuối hội thoại với ô nhập trống. Với cả hai tùy chọn tóm tắt, một dấu mốc Summarized conversation sẽ xuất hiện trong hội thoại tại vị trí các tin nhắn bị nén.
Rewind qua một hội thoại đã clear
Phần tiêu đề “Rewind qua một hội thoại đã clear”Nếu bạn đã chạy /clear trước đó trong cùng tiến trình Claude Code, menu rewind sẽ hiện thêm một mục ở đầu danh sách, ghi /resume <session-id> (previous session). Chọn mục này để resume hội thoại đang hoạt động trước khi /clear chạy. Mục này khả dụng cho tới khi bạn thoát Claude Code hoặc resume một phiên khác, và yêu cầu Claude Code v2.1.191 trở lên. Ở phiên bản cũ hơn, chạy /resume và chọn phiên trước đó từ danh sách.
Định hướng bản tóm tắt
Phần tiêu đề “Định hướng bản tóm tắt”Tóm tắt không thay đổi file trên đĩa, và các tin nhắn gốc vẫn còn trong transcript của phiên, nên Claude vẫn có thể tham chiếu tới chi tiết. Để định hướng bản tóm tắt tập trung vào điều gì, dùng phím mũi tên để chọn một tùy chọn Summarize, gõ hướng dẫn vào dòng ghi add context (optional), rồi nhấn Enter. Chọn tùy chọn bằng phím số sẽ tóm tắt ngay lập tức mà không có hướng dẫn thêm.
Các trường hợp sử dụng phổ biến
Phần tiêu đề “Các trường hợp sử dụng phổ biến”Checkpoint đặc biệt hữu ích khi:
- Khám phá phương án khác: thử các cách triển khai khác nhau mà không mất điểm xuất phát ban đầu
- Khôi phục sau lỗi: nhanh chóng hoàn tác các thay đổi gây ra bug hoặc làm hỏng chức năng
- Lặp lại trên các tính năng: thử nghiệm các biến thể mà vẫn biết rằng bạn có thể quay lại trạng thái hoạt động tốt
- Giải phóng không gian context: tóm tắt một phiên debug dài dòng từ điểm giữa trở đi, giữ nguyên các hướng dẫn ban đầu của bạn
Giới hạn
Phần tiêu đề “Giới hạn”Thay đổi từ lệnh bash không được theo dõi
Phần tiêu đề “Thay đổi từ lệnh bash không được theo dõi”Checkpointing không theo dõi các file bị sửa đổi bởi các lệnh bash. Ví dụ, nếu Claude Code chạy:
rm file.txtmv old.txt new.txtcp source.txt dest.txtCác thay đổi file này không thể hoàn tác qua rewind. Chỉ những chỉnh sửa file trực tiếp qua các tool chỉnh sửa file của Claude mới được theo dõi.
Chỉnh sửa từ subagent không được khôi phục
Phần tiêu đề “Chỉnh sửa từ subagent không được khôi phục”Ngoại trừ một skill với context: fork chạy ở foreground, các chỉnh sửa mà một subagent thực hiện nằm ngoài checkpoint của phiên bạn, nên rewind không khôi phục chúng - dù subagent thực hiện chỉnh sửa đó bằng chính các tool chỉnh sửa file của Claude. Điều này bao gồm cả một lần chạy /code-review --fix ở background và bất kỳ forked skill nào chạy ở background. Dùng git để hoàn tác những thay đổi đó. Fork chạy ở foreground chỉnh sửa working tree của bạn trong chính lượt (turn) của bạn, nên rewind vẫn khôi phục chỉnh sửa của nó như bình thường. Một forked skill mặc định chạy ở background; đặt background: false trong frontmatter của nó để chạy ở foreground, nơi lượt gọi sẽ đợi kết quả. Trước v2.1.218, forked skill luôn chạy ở foreground.
Thay đổi từ bên ngoài không được theo dõi
Phần tiêu đề “Thay đổi từ bên ngoài không được theo dõi”Checkpointing chỉ theo dõi các file đã được chỉnh sửa trong phiên hiện tại. Các thay đổi thủ công bạn thực hiện lên file bên ngoài Claude Code, và các chỉnh sửa từ phiên khác chạy song song, thường không được ghi nhận - trừ khi chúng vô tình sửa đổi cùng file mà phiên hiện tại đang dùng.
Đường dẫn symlink và hard-link không được khôi phục
Phần tiêu đề “Đường dẫn symlink và hard-link không được khôi phục”Checkpointing không rewind các file symlink hoặc hard-link. Khi bạn chọn Restore code hoặc Restore code and conversation từ menu /rewind, Claude Code bỏ qua bất kỳ đường dẫn nào được theo dõi là symlink hoặc hard link, và hiện cảnh báo Restored the code, but skipped N files. Các file bị bỏ qua giữ nguyên nội dung hiện tại. Để hoàn tác thay đổi của phiên lên một trong các file đó, yêu cầu Claude đảo ngược chỉnh sửa hoặc tự sửa file. Cả file cấu hình mà một dotfile manager symlink vào project, lẫn file mà pnpm hard-link vào chỗ, đều thuộc trường hợp này.
Để xem restore bỏ qua đường dẫn nào, bật debug logging với /debug trước khi restore: debug log tại ~/.claude/debug/<session-id>.txt liệt kê từng đường dẫn bị bỏ qua.
Không thay thế cho version control
Phần tiêu đề “Không thay thế cho version control”Checkpoint được thiết kế cho việc khôi phục nhanh, ở cấp độ phiên. Với lịch sử phiên bản lâu dài và cộng tác:
- Tiếp tục dùng version control (ví dụ: Git) cho commit, branch, và lịch sử dài hạn
- Checkpoint bổ trợ chứ không thay thế version control đúng nghĩa
- Hãy nghĩ về checkpoint như “undo cục bộ” và Git như “lịch sử vĩnh viễn”
Xem thêm
Phần tiêu đề “Xem thêm”- Interactive mode - phím tắt và điều khiển phiên
- CLI reference - các tùy chọn dòng lệnh
lượt xem