Menu
Giải Đáp Wiki Diễn Đàn
Trang chủ » Diễn đàn » Lập trình & Thiết kế Web » Anh em chia sẻ kinh nghiệm dùng Git cherry pick thế nào hiệu quả.

Anh em chia sẻ kinh nghiệm dùng Git cherry pick thế nào hiệu quả.

Hôm qua ngồi fix bug mệt nghỉ ở nhánh dev xong tự nhiên sếp bắt bốc nguyên cái commit vá lỗi đó sang nhánh release gấp. Lúng túng thế nào mình lại dùng `git cherry-pick` mà cứ bị xung đột tùm lum, sửa xong nhìn lại lịch sử code rối như canh hẹ luôn các bác ạ. Bình thường em toàn merge cả cục cho lành, chứ cứ chọn lọc từng commit thế này dễ dính conflict lắm. Không biết anh em hay dùng lệnh này trong hoàn cảnh nào là chuẩn bài nhất? Có mẹo gì để né conflict hoặc kiểm tra trước xem nó có "cắn" nhau không thì chỉ em với nhé. Đội ơn các bác nhiều.

Thảo luận (3 bình luận chính)

Avatar
Vũ Tuyết Mai MEMBER Cấp 0 28/09/2026 19:22

Đổi sang dùng `git cherry-pick -x ` ngay đi bác, nó sẽ tự động ghi chú lại commit gốc để sau này đỡ bị lặp code hoặc nhầm lẫn lịch sử. Lúc dính conflict mà thấy rối quá thì cứ gõ `git cherry-pick --abort` để quay lại từ đầu, bình tĩnh xử lý xong nhánh dev rồi hẵng múc sang release chứ đừng cố gõ `--continue` khi chưa rõ mình đang sửa cái gì. Kinh nghiệm xương máu là hạn chế cherry-pick từng commit lẻ tẻ nếu code dính dấp nhiều file, thà tách riêng một nhánh hotfix rồi PR còn hơn, đỡ hại não.

Avatar
Lê Thanh Tùng MEMBER Cấp 0 28/09/2026 15:54

Chuyện cherry-pick dính conflict và nát lịch sử là cơm bữa nếu cứ phang ngang phè phè giữa hai nhánh lệch pha nhau quá xa. Để làm sạch cái đống canh hẹ đó mà vẫn moi được đúng cái commit vá lỗi sang nhánh release, áp dụng ngay 3 bước gọn gàng này: , checkout sang nhánh release và tạo ngay một nhánh tạm (`git checkout -b hotfix-release`). Tiếp theo, chạy `git cherry-pick -x ` để nó bốc commit kèm theo metadata gốc, giúp trace nguồn gốc rõ ràng, đỡ rối mắt. , nếu dính conflict thì mở IDE lên fix cho chuẩn, xong `git add` rồi `git cherry-pick --continue` là xong, tuyệt đối đừng gộp đống code lung tung vào rồi force push lên ăn hành với sếp.

Avatar
Trần Lan Anh MEMBER Cấp 1 28/09/2026 03:46

Vụ này đợt trước mình cũng dính y chang, cứ cherry-pick sang nhánh khác là conflict ngập mặt vì khác biệt môi trường code. Kinh nghiệm xương máu của mình là trước khi gõ lệnh thì nên đứng ở nhánh đích, chạy thêm cờ `-x` để nó giữ lại thông tin commit gốc, và nhớ kiểm tra xem commit đó có kéo theo đống dependencies thừa thãi nào từ nhánh dev không. Lịch sử mà đã rối tung lên thì khuyên chân thành là reset lại rồi dùng tính năng patch hoặc nhờ git mergetool sử dụng giao diện cho dễ nhìn, chứ ngồi sửa chay bằng tay dễ nổi điên lắm chủ thớt ạ.

Vui lòng Đăng nhập hoặc Đăng ký để tham gia bình luận.