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.
Tags:
Bài viết liên quan
Hiểu về AI, LLM, RAG và Agentic RAG trong 15 phút
Trong vài năm gần đây, trí tuệ nhân tạo (AI) đã bùng nổ mạnh mẽ và trở thành tâm điểm của cả thế giới công nghệ. Nhưng đi kèm với nó là hàng loạt khái niệm mới như LLM, RAG, hay Agentic RAG khiến nhiều người mới bắt đầu cảm thấy lúng túng.
Đọc thêm
Hướng dẫn tự triển khai N8N trên CentOS bằng Docker Compose và NGINX
N8N là công cụ mã nguồn mở cho phép bạn tự động hóa quy trình làm việc (workflow automation) và tích hợp nhiều dịch vụ khác nhau mà không cần phải lập trình.
Đọc thêm
Hướng dẫn phân tích độ phức tạp thuật toán chi tiết
Độ phức tạp của giải thuật là một cách để đánh giá hiệu quả của một giải thuật dựa trên hai yếu tố chính là độ phức tạp thời gian và độ phức tạp không gian.
Đọc thêm
Bài 6. Các thao tác với XPath và Selector trong Selenium
Bài viết này hướng dẫn bạn làm việc XPath và Css Selector trong Selenium.
Đọc thêm
Bài 5. Các thao tác với Web Browser trong Selenium
Bài viết này hướng dẫn bạn làm việc sâu Web Browser trong Selenium.
Đọc thêm
Bài 4. Thực thi Javascript trong Selenium
Bài viết này hướng dẫn bạn thực thi lệnh Javascript trong Selenium.
Đọc thêm
Bài 3. Làm việc với Element trong Selenium
Bài viết này hướng dẫn bạn làm việc với Element trong Selenium.
Đọc thêm
Bài 2. Các thao tác cơ bản về Selenium
Bài viết này hướng dẫn bạn tạo dự án Selenium C# và thực hiện thao tác cơ bản.
Đọc thêm
Bài 1. Giới thiệu về Selenium
Bài viết giới thiệu sơ lược về chuỗi bài Selenium.
Đọc thêm
Bài 18. Xây dựng Docker Compose .NET Core Và SQL Server
Hướng dẫn xây dựng Docker Compose .NET Core Và SQL Server
Đọc thêm