Trong lúc làm việc với git checkout chắc chắn sẽ có lúc bạn gặp một thông báo cảnh báo “Commit your changes or stash them before you can merge”, như hình này:

Commit your changes or stash them before you can merge

Lý do là bạn đã thay đổi mã nguồn code và đang mong muốn chuyển sang nhánh khác để làm việc. Và điều này, git đã ngăn cấm không cho chuyển sang khi chúng ta chưa commit các thay đổi đó. Đây là cách mà git đảm bảo cho mã nguồn của bạn không bị mất, các thông tin sạch sẽ trước khi nạp các thay đổi trên nhánh sắp tới bạn chuyển sang.

Như vậy, có 3 phương án xử lý là 1) commit các thay đổi trên nhánh hiện tại (nếu công việc thuộc nhánh hiện tại này), 2) stash lại các thay đổi vào 1 bộ nhớ stack, lúc cần dùng thì lại pop các thay đổi đó ra nạp vào nhánh đang làm việc. 3) Phương án này là xóa toàn bộ các thay đổi đi nếu đoạn code không cần thiết nữa.

1. Commit các thay đổi trên nhánh hiện tại

git commit -m "comment các thay đổi"

Lưu ý, cần add/stage các thay đổi trước thì mới commit được.

2. Stash

Như trên, phương pháp này chỉ là lưu tạm vào 1 bộ nhớ stack, lúc nào cần sử dụng các thay đổi này thì chỉ cần pop để lấy các thay đổi đó ra và nạp vào nhánh đang làm việc hiện tại.

git stash

– Sau đó, chuyển nhánh.
– Cần nạp vào nhánh hiện tại, chạy lệnh pop:

git stash pop

3. Hủy bỏ các thay đổi

Trước hợp bạn sửa đổi code, nhưng các thay đổi này không cần sử dụng nữa thì tốt nhất là nên xóa đi

git reset --hard

Hoặc, muốn reset từng file 1 chạy lệnh:

git checkout [filename]

Sau khi thực hiện 1 trong ba phương án trên bạn có thể chuyển nhánh ok: git checkout [banch_name]

Liên kết tham khảo

About The Author