12/08/2018, 17:35

Hướng dẫn git cherry-pick

Trường hợp sử dụng? Giả sử bạn có 2 branches khác nhau, branch A và branch B . Và bạn đang fix một bug nghiêm trọng cùng tồn tại trên hệ thống và bạn muốn commit một lần nhưng có thể apply vào luôn cho cả 2 branches. Bạn có thể dùng lệnh cherry-pick của Git để giải quyết, như sau: // Ở ...

Trường hợp sử dụng?

Giả sử bạn có 2 branches khác nhau, branch Abranch B. Và bạn đang fix một bug nghiêm trọng cùng tồn tại trên hệ thống và bạn muốn commit một lần nhưng có thể apply vào luôn cho cả 2 branches.

Bạn có thể dùng lệnh cherry-pick của Git để giải quyết, như sau:

// Ở branch A
git add -A
git commit -m "Fix typo bug"

// Ở branch B
git checkout B
git cherry-pick A

Cherry-pick sẽ lấy commit cuối cùng ở branch A merge vào branch B. Ngoài ra, bạn còn có thể chỉ định danh sách các commit cần "bốc" từ A để "bỏ" vào B nếu cần thiết.

Định Nghĩa

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. vd: Bang dang dung o branch task/user va co commit latest nhu sau. Ban muon checkout commit daf0e220d46dde3d05db0fc631233d1fa72627ee vao branch master.

commit 1200fd18742e2e03d8384e27e88cc7b0bc384018
Author: Long Tran <nhulongctk10@gmail.com>
Date:   Wed Apr 18 00:26:52 2018 +0700

    Update display field for show list, create, update users.

commit daf0e220d46dde3d05db0fc631233d1fa72627ee
Author: Long Tran <nhulongctk10@gmail.com>
Date:   Tue Apr 17 00:57:05 2018 +0700

    Update path image upload, path response of upload.

commit a4ef31ef91b1ace36f4c45f608282cfe4ac4f214
Author: Long Tran <nhulongctk10@gmail.com>
Date:   Sun Apr 15 21:19:55 2018 +0700

    Update reducers of Users

commit a7c511e03b428f9fd6902a9e00ca3f7e03b41980
Author: Long Tran <nhulongctk10@gmail.com>
Date:   Sun Apr 15 19:55:30 2018 +0700

    Implement function list, create, edit in page admin Users.

Truoc het bạn cần checkout về nhánh master:

git checkout master

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

 git cherry-pick daf0e220d46dde3d05db0fc631233d1fa72627ee

Chi tiết

Để tìm hiểu thêm thông tin về git cherry-pick, mọi người có thể tham khảo thêm tại đây

0