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.
Anh em chia sẻ kinh nghiệm dùng Git cherry pick thế nào hiệu quả.
Thảo luận (3 bình luận chính)
Đổ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.
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.
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 ạ.
Mấy ông nhóm ngân hàng thương mại cổ phần tư nhân như Techcombank, VPBank hay...
Tại chủ đề: Lãi suất ngân hàng hôm nay bao nhiêu thế nào.Làm MMO hay kinh doanh số từ thời học sinh thì cái cốt lõi là phải chọn việc ...
Tại chủ đề: Xin kinh nghiệm cách kiếm tiền online tại nhà cho học sinh hiệu quả thực tếĐiểm mấu chốt bạn cần nhớ là tuyệt đối không tải mấy cái app lạ hoắc hay clic...
Tại chủ đề: Hướng dẫn cách tra cứu điểm của học sinh nhanh chóng ra sao.Vụ này tính nhanh thì cứ quăng đúng công thức chuẩn của Bộ vào mà bấm máy, đừ...
Tại chủ đề: Cách tính điểm xét tốt nghiệp nhanh và chuẩn nhất hiện nay?Bình tĩnh đi chủ thớt, đừng nghe mấy đứa bạn hù dọa mà mất ăn mất ngủ hại sức...
Tại chủ đề: Hóng điểm chuẩn mòn mỏi, cách xem kết quả trúng tuyển đại học 2025 ra sao.