Trong quá trình làm việc với Git, chắc hẳn đã có lúc bạn rơi vào tình huống: Bạn đang phát triển tính năng ở nhánh feature-A, nhưng sếp lại muốn bạn mang đúng một bản vá lỗi (bug fix) từ nhánh feature-B sang nhánh main ngay lập tức. Bạn không muốn gộp toàn bộ nhánh feature-B vì nó còn quá nhiều code dang dở.

Đây chính là lúc Git Cherry-pick tỏa sáng.

1. Git Cherry-pick là gì?

git cherry-pick là một lệnh cho phép bạn chọn một hoặc nhiều commit cụ thể từ một nhánh khác và áp dụng chúng vào nhánh hiện tại của bạn. Thay vì sử dụng merge hay rebase để kết hợp toàn bộ lịch sử của một nhánh, cherry-pick giúp bạn “lấy” chính xác những gì bạn cần.

2. Khi nào nên dùng Cherry-pick?

Đừng lạm dụng nó, nhưng hãy nhớ tới nó trong các trường hợp sau:

  • Hotfixes: Khi bạn phát hiện một lỗi nghiêm trọng trên nhánh develop và cần đưa bản sửa lỗi đó lên production (nhánh main) ngay mà không được phép mang theo các tính năng chưa hoàn thiện khác.

  • Hợp tác nhóm: Đồng đội của bạn vừa viết một hàm tiện ích rất hay ở nhánh của họ, và bạn muốn dùng nó ngay cho công việc của mình.

  • Khôi phục commit: Đôi khi bạn lỡ tay xóa một nhánh nhưng nhớ được mã hash của commit quan trọng, bạn có thể “cherry-pick” nó về nhánh mới.

3. Cách sử dụng cơ bản

Cách dùng cực kỳ đơn giản. Đầu tiên, bạn cần biết commit hash (mã định danh) của commit muốn lấy.

Bước 1: Lấy mã commit

Bước 2: Chuyển sang nhánh đích ( Giả sử main là nhánh đích )

Bước 3: Thực hiện “nhặt”

Tất nhiên, nếu muốn “nhặt” nhiều

4, Xử lý Conflict

Giống như merge, cherry-pick có thể gặp conflict. Đây là cách xử lý:

5, Những điều cần lưu ý

Dù rất tiện lợi, nhưng đừng lạm dụng cherry-pick vì nó có thể gây ra những hệ quả sau:

  • Duplicate Commits: Cherry-pick tạo ra một commit mới có nội dung y hệt nhưng mã Hash khác. Điều này làm lịch sử Git của bạn xuất hiện 2 commit giống hệt nhau, dễ gây nhầm lẫn khi merge các nhánh về sau.

  • Mất dấu vết lịch sử: Nếu bạn cherry-pick quá nhiều, bạn sẽ khó theo dõi được commit đó gốc gác từ tính năng nào, nhánh nào.

Lời khuyên: Chỉ dùng cherry-pick khi thực sự cần thiết (như Hotfix). Nếu có thể dùng merge, hãy ưu tiên merge.

6, Kết luận

git cherry-pick là công cụ phẫu thuật trong bộ công cụ Git của bạn. Dùng đúng chỗ — hotfix, backport, commit nhầm nhánh — nó cực kỳ hiệu quả. Dùng sai chỗ, nó làm lịch sử Git của bạn trở nên rối rắm và khó bảo trì.

Nguyên tắc đơn giản: nếu bạn cần một vài commit cụ thể, hãy dùng cherry-pick. Nếu bạn cần toàn bộ nhánh, hãy dùng merge hay rebase.

 

Neartech xin trân trọng cảm ơn bạn đã quan tâm bài viết này! Nếu bạn gặp khó khăn gì hãy để lại comment ở bên dưới, nếu có thể mình sẽ giúp đỡ bạn!

 

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments