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.