Tìm Hiểu Về Cherry-Pick Trong Git

Khi ai đó yêu cầu thực hiện cherry-pick một commit trên nhánh dev về nhánh master sử dụng Git thì chính xác thì điều đó có nghĩa là gì?

Nếu bạn nhận được yêu cầu tương tự như trên mà chưa biết phải làm gì thì hãy tham khảo bài viết ngắn này vì thuật ngữ này cũng không khó hiểu như cách phát âm dài dòng của nó.

Lưu ý: Bạn cần nắm được cơ bản về nhánh (branch) và merge trong Git trước khi tham khảo phần tiếp theo.

Cherry-Pick Là Gì

Bỏ qua cách phát âm phức tạp thì cherry-pick thực chất là một cách để checkout một commit tại branch nhất định về branch hiện tại. Hay nói một cách dân dã thì cherry-pick dùng để bưng các thay đổi trong một commit trên một nhánh nào đó áp dụng về nhánh hiện tại.

Ví dụ trên repo (local) trên máy của bạn có hai nhánh là master và một nhánh feature-dev dùng để phát triển một tính năng thanh toán online. Để phát triển tính năng này bạn cần làm các công việc nhỏ sau:

  • Thanh toán bằng thẻ ngân hàng qua ví Payoo.
  • Thanh toán bằng thẻ ngân hàng thông qua Ngân Lượng.
  • Thanh toán bằng Visa.

Sau đó bạn chuyển qua nhánh feature-dev để bắt đầu phát triển từng phần của tính năng. Tuy nhiên sau đó không lâu thì bạn nhận được yêu cầu của sếp deploy gấp phiên bản mới để demo cho khách hàng. Lúc này bạn mới chỉ hoàn thành xong 2 phần đầu là Thanh toán bằng thẻ ngân hàng qua ví Payoo và Thanh toán bằng thẻ ngân hàng thông qua Ngân Lượng trong tính năng mới này.

Khi xem log trên nhánh feature-dev của bạn với 7 commit gần nhất có kết quả như sau:

-> … … -> commit hash: A1 bắt đầu implement Payoo -> commit hash: A2 fix bug -> commit hash: A3 xong Payoo -> commit hash: B1 bắt đầu implement Ngân Lượng -> commit hash: B2 fix bug -> commit hash: B3 xong Ngân Lượng -> commit hash: C1 bắt đầu implement Visa

Để đảm bảo khách hàng vẫn thấy được các tính năng thanh toán Payoo và Ngân Lượng bạn muốn lấy commit B3 để áp dụng vào nhánh master. Lúc này bạn sẽ sử dụng cherry-pick của Git.

Đầu tiên bạn cần checkout về nhánh master:

$ git checkout master

Và sau đó thực hiện việc pick:

$ git cherry-pick B3

Lúc này nhánh master sẽ áp dụng các thanh đổi trong commit B3 về nhánh master.

So Sánh Cherry-Pick và Merge

Một tính năng trong Git khá giống với cherry-pick đó là merge branch.

Khi muốn merge các thanh đổi có trong nhánh feature-dev về nhánh master chúng ta sẽ làm các bước như sau.

Đầu tiên checkout về nhánh master:

$ git checkout master

Và sau đó thực hiện việc merge nhánh feature-dev về nhánh master:

$ git merge feature-dev

Khác biệt khi bạn thực hiện động tác merge branch như trên đó là Git sẽ áp dụng các thanh đổi của commit mới nhất trong nhánh feature-dev về nhánh master. Nghĩa là Git sẽ lấy các thanh đổi trong commit C1 và áp dụng về nhánh master.

Related Posts

Dầu ăn Neptune 5 lít giá bao nhiêu: Tất cả những gì bạn cần biết

Tìm hiểu về dầu ăn Neptune 5 lít giá bao nhiêu và cách sử dụng sản phẩm chất lượng cao này để đảm bảo sức khỏe cho gia đình của bạn.

1 Trái Cà Chua Bao Nhiêu Calo?

Bạn đang tìm kiếm thông tin về lượng calo có trong 1 trái cà chua? Đừng bỏ qua bài viết này, chúng tôi sẽ giải quyết câu hỏi của bạn! Tìm hiểu ngay!

Cách Tải Hình Nền Động: Hướng Dẫn Chi Tiết Cho Người Mới Bắt Đầu

Tìm hiểu cách tải hình nền động và làm mới giao diện thiết bị của bạn với hướng dẫn chi tiết trong bài viết này. Xem ngay!

Cách nấu cháo lòng lợn ngon nhất – Hướng dẫn chi tiết từ A-Z

Học cách nấu cháo lòng lợn ngon nhất với hướng dẫn chi tiết từ A-Z. Tận hưởng món ăn truyền thống của Việt Nam với hương vị đậm đà và giàu dinh dưỡng.

Tóc bạc sớm nguyên nhân và cách điều trị

Không muốn tóc bạc sớm? Tìm hiểu nguyên nhân và cách điều trị với chúng tôi để giữ cho mái tóc của bạn khỏe mạnh và trẻ trung hơn.

Cách lên bảng cân đối kế toán: Hướng dẫn chi tiết từ A-Z

Hướng dẫn chi tiết cách lên bảng cân đối kế toán trong doanh nghiệp: từ các yêu cầu cho đến những sai lầm thường gặp và lợi ích của việc lập bảng.