Git có nhiều phương thức giúp bạn merge các commit từ branch khác, bao gồm cả git cherry-pick.
git cherry-pick là gì và khác gì git merge?
Nói ngắn gọn và dễ hiểu, đây là phương thức giúp bạn đưa các thay đổi từ các commit nằm trên một branch khác vào branch của bạn.
Cú pháp thông thường rất đơn giản: git cherry-pick commit_id
là làm.
Thông thường nếu git cherry-pick commit bị lỗi (gặp conflict), bạn cần sửa các file đang gặp lỗi, thêm vào commit là sẽ làm thành công.
Sự khác nhau giữa git cherry-pick và git merge
git cherry-pick
lấy commit cho vào branch, nhưng không tạo commit merge, trong khi git merge
thường tạo ra 1 commit merge.
Theo thói quen công việc, sẽ có nhiều team chọn git cherry-pick, và cũng nhiều team sẽ chọn git merge, các bạn có thể đọc thêm về Làm việc cùng Git Flow.
git cherry-pick nhiều commit
Ta cần lưu ý các cú pháp sau đây nếu muốn thêm hàng loạt commit vào branch.
Nếu muốn thêm 1 vài commit, không liên tục, ta nhập lệnh:
git cherry-pick commit_id1 commit_id2 commit_id3
Nếu muốn thêm 1 loạt commit lần lượt cạnh nhau (ví dụ 5 commit liên tục):
git cherry-pick commit_id1...commit_id5
Tuy nhiên, tình huống này thì commit id đầu tiên không được thêm vào branch. Cách làm tốt hơn là:
git cherry-pick commit_id1^..commit_id5
Như vậy, commit đầu tiên sẽ được tính vào và nằm trong branch bạn đang thêm.
Đọc trên Stackoverflow về tình huống này nhé.
Giám đốc tại Công ty CP CODE TỐT. Quản lý ngôn ngữ bản địa tiếng Việt tại WordPress. Là tác giả chính tại codetot.net, Khôi muốn ghi lại một sốvấn đề kỹ thuật trong quá trình phát triển các dự án website với khách hàng.