Cherry-pick
Cherry-pick
Khi bạn chỉ cần một thay đổi từ nhánh khác chứ không phải cả nhánh, cherry-pick là công cụ đúng.
1. Cherry-pick là gì?
git cherry-pick <hash> lấy diff của một commit cụ thể rồi áp lên nhánh hiện tại, tạo một commit mới (hash khác, nội dung thay đổi giống hệt).
git checkout main
git cherry-pick 9f3a1c2
2. Khi nào dùng?
| Use case | Mô tả |
|---|---|
| Hotfix | Áp commit sửa lỗi sang nhánh release đang chạy |
| Backport | Đưa fix/tính năng về nhánh phiên bản cũ |
| Nhầm nhánh | Commit đúng việc nhưng sai nhánh |
3. Conflict và trùng lặp
Conflict xử lý như merge: sửa file → git add → git cherry-pick --continue (hoặc --abort). Cẩn thận: nếu sau này merge cả nhánh nguồn, thay đổi có thể xuất hiện hai lần.
Cách nhớ nhanh
Cherry-pick = hái đúng một quả (một commit) sang nhánh khác. Khác merge/rebase vốn xử lý cả nhánh. Nghĩ tới nó khi cần hotfix hoặc backport.