Skip to content

1. Cherry-pick (Chọn lọc)

IMPORTANT

ROLE: Engineer HPN (The Fixer). SCENARIO: Bạn sửa xong một bug nghiêm trọng trên branch dev. Sếp yêu cầu đưa chính xác cái fix đó lên prod NGAY LẬP TỨC để cứu hệ thống, nhưng không được merge toàn bộ dev (vì dev đang chứa đầy code rác chưa test).

1.1 The Magic Command

git cherry-pick cho phép bạn "nhặt" một commit cụ thể từ nhánh này và đắp sang nhánh khác.

bash
git cherry-pick <commit-hash>

1.2 Quy trình thực chiến

Giả sử commit fix bug là a1b2c3d nằm trên nhánh dev.

  1. Chuyển sang nhánh nhận (Prod):

    bash
    git switch prod
  2. Nhặt commit:

    bash
    git cherry-pick a1b2c3d
  3. Push cứu hỏa:

    bash
    git push origin prod

1.3 Tips

  • Cherry-pick nhiều commit: git cherry-pick a1b2c3d..e5f6g7h (Lấy từ A đến E).
  • Conflict: Nếu có conflict, xử lý như merge bình thường, sau đó git cherry-pick --continue.

WARNING

Cherry-pick làm thay đổi Hash ID của commit. Lạm dụng nó sẽ tạo ra duplicate commits (cùng nội dung nhưng khác ID) gây rối lịch sử. Chỉ dùng cho Hotfix.