Bài 12. Góp nhặt commit với cherry-pick

Giới Thiệu

Trong bài viết này, chúng ta sẽ tìm hiểu về cách sử dụng lệnh cherry-pick trong Git để chọn lọc và áp dụng các commit từ một nhánh khác vào nhánh hiện tại. Đây là một thao tác hữu ích khi bạn muốn áp dụng các thay đổi cụ thể mà không cần phải merge toàn bộ nhánh.

Chuẩn Bị

  • Đã hoàn thành các bước cơ bản về Git.
  • Terminal kết nối SSH tới máy Ubuntu.
  • Đã có Repository trên Ubuntu (Bài viết sử dụng FirstProjectGit).
  • Đã tạo và làm việc trên các nhánh trong Git.

Nội Dung

Các thao tác trong bài viết sẽ thực hiện trên nhánh dev.

1. Tạo Các Commit Trên Nhánh Khác

Giả sử bạn đang ở nhánh feature và đã tạo các commit sau:

# Tạo commit E 
echo "file e" > file_e
git add file_e
git commit -m "E"

# Tạo commit F
echo "file f" > file_f
git add file_f
git commit -m "F"

2. Chuyển Sang Nhánh dev

Chuyển sang nhánh dev để chuẩn bị áp dụng các commit từ nhánh feature:

# chuyển sang nhánh dev
git checkout dev

3. Sử Dụng Cherry-Pick

Để áp dụng commit E từ nhánh feature vào nhánh dev, trước tiên bạn cần lấy ID của commit E. Bạn có thể kiểm tra lịch sử commit của nhánh feature bằng lệnh:

# lấy ra ID của commit
git log dev

Sao chép commit ID của commit E, sau đó chạy lệnh cherry-pick để áp dụng commit đó vào nhánh dev:

# thực hiện lệnh cherry-pick qua id vừa lưu
git cherry-pick <commit_e_id> 

Kiểm tra lại lịch sử commit của nhánh dev để xác nhận commit E đã được áp dụng:

git log 

 

4. Giải Quyết Xung Đột (Nếu Có)

Nếu có xung đột xảy ra trong quá trình cherry-pick, Git sẽ thông báo và yêu cầu bạn giải quyết xung đột:

# Giải quyết xung đột trong các file # Sau khi giải quyết xung đột, tiếp tục quá trình cherry-pick

git add <file_name> 
git cherry-pick --continue 

5. Push Thay Đổi Lên Remote

Sau khi áp dụng các commit và giải quyết xung đột (nếu có), bạn cần push các thay đổi lên remote:

git push origin dev 

 


Kết Luận

Lệnh cherry-pick trong Git là một công cụ mạnh mẽ giúp bạn chọn lọc và áp dụng các commit từ một nhánh khác vào nhánh hiện tại một cách dễ dàng và hiệu quả. Đây là một phương pháp hữu ích để quản lý và tích hợp các thay đổi cụ thể mà không ảnh hưởng đến toàn bộ lịch sử commit của nhánh.

 


Tác giả: Đỗ Thiên Giang

Chú ý: Tất cả các bài viết trên TEDU.COM.VN đều thuộc bản quyền TEDU, yêu cầu dẫn nguồn khi trích lại trên website khác.

Lên trên