stash pop có conflictgit stash list
Ví dụ:
stash@{0}: WIP on main: abc1234 Update UI
stash@{1}: WIP on dev: def5678 Fix bug
Thay vì pop, dùng:
git stash apply stash@{0}
📌 Lý do: apply giữ nguyên stash trong danh sách, phòng trường hợp bạn làm hỏng merge và muốn làm lại.
Auto-merging file.txt
CONFLICT (content): Merge conflict in file.txt
git status
Git sẽ liệt kê những file ở trạng thái both modified.
Git sẽ đánh dấu như:
<<<<<<< HEAD
Nội dung hiện tại trên branch
=======
Nội dung từ stash
>>>>>>> stash
➡ Bạn chỉnh lại sao cho ra nội dung cuối cùng mong muốn.
git add <file1> <file2> ...
Nếu Git đang ở trạng thái merge, bạn chạy:
git merge --continue
Nếu Git không yêu cầu --continue (thường với apply), chỉ cần commit:
git commit -m "Apply stash and resolve conflicts"
git stash drop stash@{0}
Khi đã test xong bằng apply, lần sau có thể dùng:
git stash pop stash@{0}
📌 Nhưng nếu pop bị conflict, bạn phải sửa giống các bước trên.
Khác ở chỗ: nếu pop thất bại, stash đã bị xóa một phần, không khôi phục dễ như apply.
| Tình huống | Lệnh khuyên dùng |
|---|---|
| Lần đầu áp dụng stash, sợ mất dữ liệu | git stash apply |
| Đã test an toàn, muốn gọn | git stash pop |
| Conflict khi pop/apply | Sửa như merge → git add → git commit |