Skip to content

2. Stash (Kho tạm)

NOTE

SCENARIO: Bạn đang viết dở tính năng Login (code nát bét, chưa chạy được) trên branch feat/login. Sếp chạy vào hét: "Web sập rồi! Sửa ngay!". Bạn không thể commit code dở dang được (vi phạm HPN's Rule #2). Bạn cũng không muốn xóa code đi viết lại.

2.1 Cất đi để làm việc khác (git stash)

Stash giống như ngăn kéo bàn làm việc. Bạn quét sạch đống lộn xộn trên bàn ném vào ngăn kéo để mặt bàn sạch sẽ.

bash
git stash
# Hoặc đặt tên cho dễ nhớ:
git stash save "dang lam do login"

Lúc này git status sẽ báo "Clean". Bạn có thể an tâm switch sang branch hotfix để sửa lỗi.


2.2 Lấy lại code cũ (git stash pop)

Sau khi fix bug xong, quay lại branch cũ và mở ngăn kéo ra.

bash
git stash pop

Lệnh này sẽ lấy code từ Stash đắp lại vào Working Directory và xóa luôn bản backup trong Stash.

2.3 Quản lý Stash

Nếu bạn là người bừa bộn (stash quá nhiều lần), hãy kiểm tra danh sách:

bash
git stash list
# stash@{0}: On feature/login: dang lam do login
# stash@{1}: On master: fix header

Apply một stash cụ thể (không xóa khỏi list):

bash
git stash apply stash@{0}

TIP

Đừng lạm dụng Stash thay cho Commit. Stash là bộ nhớ tạm (Temporary Buffer), không phải nơi lưu trữ lâu dài.