Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Git Cherry Pick: Hướng dẫn từng bước

Là developer mới, chúng ta học Git qua lặp lại: git pull, git push, git commit. Khi làm dự án lớn, cộng tác team, cần lệnh nâng cao để giữ lịch sử version control rõ ràng.

Lệnh git cherry-pick dùng khi muốn lấy commit cụ thể từ nhánh này gắn vào HEAD của nhánh feature khác hoặc nhánh master.

Git cherry-pick là gì?

Hãy tưởng như làm việc nhóm: mỗi người phụ trách một phần. Cuối cùng gộp thành dự án hoàn chỉnh. Bạn có thể lấy phần của người này ghép vào phần người kia để dự án mượt mà hơn. Đó chính là git cherry-pick: lấy commit từ nhánh feature này gắn làm commit mới vào nhánh khác.

Sơ đồ minh họa hai nhánh, chữ cái = commit, gạch ngang = lịch sử từ cũ đến mới.

Các bước thực hiện git cherry-pick

Mỗi commit (cherry) có hash duy nhất (vân tay định danh). Cần hash để pick commit đó sang nhánh khác.

  1. git checkout <tên-nhánh-muốn-lấy-commit> – Checkout sang nhánh chứa commit muốn pick.
  2. git reflog – Xem log tham chiếu gần đây. Ví dụ:
    % git reflog
    bf654bb (HEAD -> master, origin/master) HEAD@{0}: commit: last commit message
    2394353 HEAD@{1}: commit: where head was 2 commit messages ago
    b4b51eb HEAD@{2}: commit: where head was 3 commit messages ago
    Ghi nhớ hash (chuỗi ký tự đầu dòng) của commit muốn pick.
  3. git checkout <tên-nhánh-muốn-gắn-commit> – Chuyển sang nhánh đích.
  4. git cherry-pick [-x] <commit-hash> – Gắn commit vào nhánh đích. Dùng cờ -x khi pick từ nhánh public (sẽ ghi chú commit gốc).

Sau cherry-pick, commit được chọn (ví dụ "C") xuất hiện trong lịch sử nhánh thứ hai.

Lưu ý cuối

Copy note từ commit cherry-picked: git notes copy <cherry-picked-hash> <new-commit-hash>. Giải quyết xung đột hợp nhất nếu có.

Bài viết đã trình bày quy trình dùng lệnh nâng cao git cherry-pick để chuyển commit giữa nhánh.