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 |