Git Stash
Cập nhật lần cuối
git stash cất tạm các thay đổi chưa commit và đưa working tree về trạng thái sạch, để bạn chuyển nhánh hoặc pull mà không phải commit phần việc còn dở. Các thay đổi được đẩy vào một ngăn xếp (stack) mà sau này bạn áp dụng lại bằng git stash pop (áp dụng rồi xóa) hoặc git stash apply (áp dụng và giữ lại).
Bạn có thể thử các lệnh này trong terminal playground: một shell thật ngay trên trình duyệt, không cần cài đặt gì.
Cú pháp
| Lệnh | Tác dụng |
|---|---|
git stash | Cất tạm thay đổi trên tệp tracked, làm sạch working tree |
git stash -u | Stash cả tệp untracked |
git stash push -m "msg" | Stash kèm thông điệp mô tả |
git stash push <file> | Chỉ stash một tệp cụ thể |
git stash list | Liệt kê mọi stash |
git stash pop | Áp dụng lại stash mới nhất rồi xóa nó |
git stash apply | Áp dụng lại stash mới nhất, giữ nó lại |
git stash drop | Xóa stash mới nhất |
git stash clear | Xóa mọi stash |
pop và apply
| Đặc điểm | git stash pop | git stash apply |
|---|---|---|
| Áp dụng lại thay đổi | Có | Có |
| Xóa stash sau đó | Có | Không |
| Phù hợp để dùng lại stash | Không | Có |
Câu hỏi thường gặp về git stash
git stash làm gì?
git stash pop hoặc git stash apply. Rất tiện khi bạn cần chuyển nhánh nhưng chưa sẵn sàng commit.git stash pop và git stash apply khác nhau thế nào?
git stash pop còn xóa stash đó khỏi ngăn xếp sau khi áp dụng, còn git stash apply giữ nó lại để bạn áp dụng lần nữa ở chỗ khác. Dùng pop khi chỉ cần khôi phục một lần, apply khi muốn dùng lại stash.git stash có lưu tệp untracked không?
git stash thông thường chỉ cất tạm các tệp tracked (đã sửa). Thêm -u (git stash -u) để lấy cả tệp untracked, hoặc -a để lấy luôn tệp bị ignore. Không có các cờ này, những tệp mới bạn chưa git add vẫn nằm lại trong working tree.Làm sao áp dụng một stash cụ thể?
git stash list để xem các stash được đánh số dạng stash@{0}, stash@{1}, rồi git stash apply stash@{1} (hoặc pop) để áp dụng lại đúng stash đó. Mỗi stash còn hiện nhánh và thông điệp lúc tạo, nên bạn dễ phân biệt chúng.Có thể luyện tập lệnh này online không?
git stash trong một shell thật ngay trên trình duyệt, không cần cài đặt gì. Khóa học Git tương tác miễn phí của Coddy cũng hướng dẫn từng bước cách quản lý phần việc đang dở.