Git là một hệ thống quản lý phiên bản phổ biến được sử dụng rộng rãi trong quá trình phát triển phần mềm. Trong quá trình làm việc với Git, chúng ta thường cần áp dụng các commit đơn lẻ từ một nhánh (branch) khác vào nhánh hiện tại. Trong trường hợp này, Git cherry-pick là một công cụ quan trọng giúp chúng ta thực hiện việc này một cách dễ dàng. Trong bài viết này, chúng ta sẽ tìm hiểu về cách sử dụng Git Cherry Pick cùng với một số ví dụ minh họa.
Mục lục
1. Git cherry-pick là gì?
Git cherry-pick là một trong những lệnh trong Git giúp chúng ta chọn lọc và áp dụng các commit cụ thể từ một nhánh khác vào nhánh hiện tại. Điều này cho phép chúng ta lấy những thay đổi cần thiết từ các commit riêng lẻ và áp dụng chúng vào dự án của mình mà không cần merge toàn bộ nhánh đó.
2. Cách sử dụng git cherry-pick:
Để sử dụng Git cherry-pick, chúng ta cần làm theo các bước sau đây:
2.1. Kiểm tra và chuyển đến nhánh muốn áp dụng commit:
git checkout <branch_name>
2.2. Xác định commit cần áp dụng:
Chúng ta cần xác định commit cụ thể mà chúng ta muốn áp dụng. Có thể là commit trên cùng của nhánh hoặc commit có mã xác định.
git log <branch_name>
commit ef1269d54b6cb7e2da9da156847a4... (HEAD -> add-...
commit d0ffe773675217b3d5ac1e80cf3fa...
commit 83902bbbe9c973c70c33446886398...
2.3. Áp dụng commit vào nhánh hiện tại:
git cherry-pick <commit_hash>
<commit_hash>
là chuỗi hash chúng ta vừa log ra ở bước 2 mà bạn muốn pick
2.4. Xử lý xung đột (nếu có):
Nếu có xung đột giữa commit áp dụng và các thay đổi hiện tại trong nhánh hiện tại, Git sẽ hiển thị thông báo về xung đột và bạn cần giải quyết xung đột đó trước khi tiếp tục.
Commit và hoàn tất:
Sau khi áp dụng thành công commit, bạn có thể sử dụng lệnh git commit
để tạo một commit mới chứa các thay đổi đã cherry-pick.
3. Ví dụ về sử dụng Git Cherry Pick:
Giả sử bạn đang làm việc trên nhánh “feature-branch” và muốn áp dụng commit “abcdef” từ nhánh “bug-fix-branch” vào nhánh hiện tại. Bạn có thể làm như sau:
3.1. Chuyển đến nhánh “feature-branch”:
git checkout feature-branch
3.2. Xác định commit “abcdef”:
git log bug-fix-branch
3.3. Áp dụng commit “abcdef” vào nhánh hiện tại:
git cherry-pick abcdef
3.4. Giải quyết xung đột (nếu có):
3.5. Commit và hoàn tất:
git commit -m "Cherry-pick commit abcdef from bug-fix-branch"
4. Tìm hiểu thêm về git cherry-pick nhiều commit
Bạn 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_hash_1 commit_hash_2 commit_hash_3
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_hash_1...commit_hash_5
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_hash_1^..commit_hash_5
Như vậy, commit đầu tiên sẽ được tính vào và nằm trong branch bạn đang thêm.
5. Kết luận:
Git Cherry Pick là một công cụ mạnh mẽ trong quá trình làm việc với Git, cho phép chúng ta áp dụng các commit đơn lẻ từ một nhánh khác vào nhánh hiện tại. Bằng cách sử dụng Git Cherry Pick, bạn có thể lấy những thay đổi cần thiết từ các commit riêng lẻ và áp dụng chúng vào dự án của mình một cách dễ dàng và linh hoạt. Hy vọng rằng bài viết này đã giúp bạn hiểu rõ hơn về Git Cherry Pick và cách sử dụng nó trong công việc hàng ngày của mình.