Trong quá trình lập trình, việc mắc sai lầm là điều không thể tránh khỏi. Có thể bạn đã lỡ tay thêm một file cấu hình vào Staging Area, hoặc một đoạn code thử nghiệm làm hỏng tính năng đang hoạt động tốt.
Sức mạnh thực sự của Git không chỉ nằm ở việc lưu trữ lịch sử, mà còn là một "cỗ máy thời gian" giúp bạn sửa chữa những sai lầm đó. Hãy cùng tìm hiểu cách Git giúp bạn quay lui và dọn dẹp các thay đổi không mong muốn một cách an toàn.
Lệnh restore giúp ta thực hiện hoàn tác các thay đổi. Nếu bạn muốn loại bỏ các sửa đổi đối với các file trong working directory, bạn sẽ cần dùng đến lệnh restore.
Chỉ các unstaged files mới đủ điều kiện để được khôi phục từ Git repository. Để di chuyển các file từ staging area trở lại working directory, hãy truyền cờ --staged:
git restore --staged <file>
Hành động này sẽ unstage các file được chỉ định, và chuẩn bị cho các file này để được khôi phục (hoặc chỉnh sửa tiếp).
Đầu tiên ta xác định những file nào đã bị sửa đổi kể từ lần commit cuối cùng bằng cách sử dụng git status. Khi đã xác định được các file, hãy truyền tên chúng vào lệnh restore:
git restore <file(s)>
Git sẽ lấy trạng thái của (các) file này từ HEAD commit và khôi phục chúng về phiên bản đó. Nếu bạn muốn khôi phục về một commit cụ thể, hãy sử dụng lệnh:
git restore <commit-hash> <file(s)>
git restore file(s) (không có --staged) sẽ xóa bỏ vĩnh viễn các thay đổi trong file đó mà bạn chưa commit. Hãy chắc chắn rằng bạn hoàn toàn muốn xóa bỏ các thay đổi đó. Và đó là tác dụng của lịch sử commit giúp bạn trở về phiên bản cũ ổn định một cách an toàn. Bài tiếp theo chúng ta sẽ tìm hiểu về cách cập nhật commit khi bạn vô tình commit thiếu hoặc sai chính tả nhé!
Tiếp theo: Cập nhật commit