Chuyển đến nội dung chính

Cách sử dụng Git Rebase: Hướng dẫn cho người mới bắt đầu

Tìm hiểu Git Rebase là gì và cách sử dụng nó trong quy trình làm việc khoa học dữ liệu của bạn.
Đã cập nhật 5 thg 10, 2026  · 8 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Khi khoa học dữ liệu, kỹ thuật dữ liệu và machine learning xuất hiện ở hầu hết mọi khía cạnh của vận hành doanh nghiệp hằng ngày, các chuyên gia dữ liệu không còn có thể làm việc trong môi trường tách biệt. Thay vào đó, họ cần hợp tác chặt chẽ với các nhà phát triển phần mềm để đưa các dự án khoa học dữ liệu vào vận hành và có khả năng mở rộng. Điều này đồng nghĩa với việc các chuyên gia dữ liệu sẽ cần tích hợp những công cụ định hướng phát triển phần mềm mới vào bộ kỹ năng của mình, bao gồm Git.

Git là công cụ quản lý phiên bản mã nguồn mở, được tạo ra để thực hiện các thao tác kiểm soát phiên bản. Nó cho phép nhà phát triển và chuyên gia dữ liệu theo dõi hiệu quả các thay đổi trong tệp dự án, như các script Python và tập dữ liệu, để các thành viên dự án có thể có bản ghi mọi thay đổi, đồng bộ công việc và cộng tác mà không làm mất thông tin. Một điểm khởi đầu tuyệt vời với git là Khóa học Giới thiệu về Git của chúng tôi.

Một trong những tính năng chính của Git là khả năng sử dụng nhánh (branch). Nhánh cho phép nhà phát triển có nhiều phiên bản của một dự án và theo dõi có hệ thống từng phiên bản. Ở một thời điểm nào đó, bạn có thể cần tích hợp tiến độ đã đạt được trong một nhánh vào một nhánh khác. Có nhiều chiến lược để kết hợp các nhánh, bao gồm các lệnh git merge và git rebase.

Mục tiêu của bài viết này là giới thiệu git rebase, một lệnh giúp tích hợp các nhánh bằng cách di chuyển một chuỗi commit từ nhánh nguồn lên trên nhánh đích, thường là nhánh main.

Tìm hiểu Git Rebase

Hãy tưởng tượng bạn đang làm việc trong một dự án khoa học dữ liệu cùng với các chuyên gia dữ liệu khác, và bạn phụ trách phát triển một bảng điều khiển với PowerBI dựa trên dữ liệu được thu thập trong các commit trước đó.

Vì bạn sẽ là người chịu trách nhiệm chính cho bảng điều khiển, việc tạo một nhánh riêng là hợp lý. Trong khi đó, các thành viên còn lại của nhóm có thể tiếp tục cập nhật nhánh main với các commit mới. Tình huống sẽ như sau:

Tạo một nhánh cho tính năng mới

Hình 1. Nguồn

Giờ hãy tưởng tượng các commit mới nhất trong nhánh main có liên quan đến nhánh của bạn. Ví dụ, họ có thể đã thêm tập dữ liệu mới giúp làm phong phú bảng điều khiển của bạn. Trong trường hợp này, bạn cần đưa các commit mới vào nhánh của mình. Có hai cách để tích hợp những thay đổi này: merge hoặc rebase.

Nếu bạn kết hợp các nhánh bằng lệnh git merge, bạn sẽ tạo một merge commit mới trong nhánh của mình, kết hợp các thay đổi mới nhất ở nhánh main và nhánh bạn đã tạo.

Hợp nhất các nhánh.

Hình 2. Nguồn

git merge là thao tác không phá hủy, tức là lịch sử của cả hai nhánh không thay đổi. Điều này tốt cho khả năng truy vết, nhưng cũng khiến nhánh của bạn phức tạp hơn, vì bạn có thể phải liên tục thêm các commit phát sinh từ nhánh main, đặc biệt nếu nhánh main hoạt động thường xuyên. Nó cũng có thể dẫn đến xung đột khi merge, như được giải thích trong bài viết về cách xử lý xung đột khi merge này.

Mặt khác, nếu bạn dùng git rebase, bạn sẽ di chuyển toàn bộ nhánh của mình lên trên nhánh main. Thao tác này sẽ viết lại lịch sử dự án bằng cách chèn các commit mới cho mỗi commit bạn đã tạo trong nhánh của mình. Nhánh kết quả sẽ trông như sau:

Rebase các nhánh

Hình 3. Nguồn

git rebase là lựa chọn tuyệt vời để giữ mọi thứ rõ ràng trong dự án. Bằng cách đưa toàn bộ nhánh tính năng lên đầu nhánh main, lịch sử của dự án sẽ thay đổi, tạo thành một lịch sử tuyến tính hoàn hảo, dễ điều hướng hơn. git rebase cũng loại bỏ nhu cầu tạo các merge commit thừa như khi dùng git merge.

Tuy nhiên, git rebase cũng đi kèm các xung đột và rủi ro tiềm ẩn. Vì nó thay đổi lịch sử commit và không cần merge commit, sẽ khó xác định khi nào những thay đổi do git rebase được đưa vào, từ đó ảnh hưởng đến khả năng truy vết. Quan trọng hơn, nếu git vô tình hoặc vô ý gây ra thay đổi trong nhánh main, rồi bạn đẩy chúng lên kho từ xa, điều này sẽ dẫn đến những thay đổi ngoài dự kiến có thể xung đột với công việc của các nhà phát triển khác. Do đó, bạn nên sử dụng git rebase cẩn trọng và chỉ trong một số hoàn cảnh nhất định.

Giờ hãy xem git rebase hoạt động thế nào trong thực tế!

Thực hiện Git Rebase

Để minh họa cách git rebase hoạt động, chúng ta sẽ tái hiện ví dụ ở phần trước. Nếu bạn làm việc trên một dự án cộng tác, việc đầu tiên cần làm là tìm nạp và tải nội dung từ kho lưu trữ từ xa nơi dự án được lưu trữ (thường trên đám mây hoặc máy chủ từ xa) và cập nhật kho cục bộ của bạn với các thay đổi mới nhất, để bạn đồng bộ với phần còn lại của nhóm. Việc này có thể thực hiện bằng lệnh git pull, bạn chạy trong terminal:

git pull

Bây giờ bạn đã sẵn sàng tạo một nhánh mới để làm việc trên bảng điều khiển PowerBI. Có thể làm điều này bằng lệnh sau:

git checkout -b powerbi_dashboard

Sau khi nhánh mới được tạo, bạn bắt đầu làm việc và ghi nhận tiến độ bằng vài commit. Ví dụ, bạn tạo một commit mới sau khi ghép các biểu đồ sẽ hiển thị trên bảng điều khiển.

git add .  
git commit -m "powerbi_dashboard/add_plots"

Trong lúc đó, các đồng nghiệp của bạn có thêm tiến triển ở nhánh main, liên quan đến dự án bảng điều khiển của bạn. Một lần nữa, việc đầu tiên bạn cần làm là chạy git pull để lấy cập nhật từ kho từ xa và sao chép chúng vào kho cục bộ. Điều này sẽ dẫn đến tình huống như mô tả ở Hình 1.

Từ đây, bạn có thể chọn git merge hoặc git rebase. Nếu chọn phương án sau, bạn chỉ cần chạy git rebase để di chuyển nhánh của mình lên trên nhánh main.

git checkout -b powerbi_dashboard
git rebase main 

Rebase tương tác

Nếu không cung cấp thêm thông tin, git rebase sẽ dịch tất cả commit trong nhánh của bạn lên đầu nhánh main. Tuy nhiên, bạn có thể dùng chế độ tương tác nếu muốn kiểm soát nhiều hơn cách các commit được di chuyển. Điều này cho phép bạn dọn dẹp lịch sử commit trước khi đưa nhánh lên nhánh main, từ đó tăng tính rõ ràng.

Để bắt đầu rebase tương tác, thêm tùy chọn i vào lệnh git rebase:

git checkout -b powerbi_dashboard
git rebase -i main

Thao tác này sẽ mở một trình chỉnh sửa nơi bạn có thể thay đổi hành vi của git cho từng commit bạn muốn rebase. Một số tùy chọn có sẵn gồm thay đổi thông điệp commit, gộp commit và xóa commit. Danh sách đầy đủ có trong tài liệu của git. Bên dưới là giao diện trình chỉnh sửa trông như thế nào:

pick 46s9451 powerbi_dashboard/add_plots #keep commit
reword 94561f6 powerbi_dashboard/set_data_connectors #edit commit message
drop 1f094y8 powerbi_dashboard/minor_changes #remove commit

Thực hành tốt với Git Rebase

git rebase là một lệnh hữu ích, nhưng có thể dẫn đến các tình huống rối rắm nếu dùng sai bối cảnh. Theo kinh nghiệm, bạn chỉ nên dùng git rebase trong các kho cục bộ.

Đặc biệt, git rebase phát huy tác dụng khi làm việc trên một nhánh riêng để phát triển một tính năng cụ thể. Trong bối cảnh này, git rebase có thể được dùng để giữ lịch sử commit sạch và tuyến tính, giúp các nhà phát triển khác dễ theo dõi tiến độ của bạn khi bạn đẩy commit lên kho từ xa.

Tuy vậy, bạn có thể gặp xung đột khi merge trong quá trình rebase, đặc biệt nếu bạn đã lâu không đưa các commit của đồng nghiệp ở nhánh main vào.

Tình huống nhánh của bạn xung đột với các commit mới nhất ở nhánh main có thể được khắc phục bằng cách thường xuyên rebase nhánh của bạn với nhánh main. Như vậy, bạn có thể chắc chắn rằng mình đang làm việc trên cùng một nền tảng.

Cuối cùng, phòng bệnh hơn chữa bệnh. Vì vậy, trước khi cân nhắc git rebase, hãy trao đổi với cả nhóm để họ có thể đưa ra hướng dẫn về cách và nơi sử dụng.

Kết luận

Bạn đã đi đến cuối hướng dẫn. Chúc mừng! git rebase là một lệnh đáng để đưa vào quy trình làm việc với git của bạn. Nhưng còn rất nhiều điều để học về Git, một công cụ không thể thiếu cho cả nhà phát triển và chuyên gia dữ liệu.

Dưới đây là một số tài nguyên DataCamp giúp bạn làm chủ Git. Chúc bạn học tốt!


Javier Canales Luna's photo
Author
Javier Canales Luna
LinkedIn

Tôi là một chuyên viên phân tích dữ liệu tự do, hợp tác với các công ty và tổ chức trên toàn thế giới trong các dự án khoa học dữ liệu. Tôi cũng là giảng viên khoa học dữ liệu với hơn 2 năm kinh nghiệm. Tôi thường xuyên viết bài về khoa học dữ liệu bằng tiếng Anh và tiếng Tây Ban Nha; một số bài đã được đăng trên các trang uy tín như DataCamp, Towards Data Science và Analytics Vidhya. Là một nhà khoa học dữ liệu có nền tảng khoa học chính trị và luật, mục tiêu của tôi là làm việc tại giao điểm giữa chính sách công, pháp luật và công nghệ, tận dụng sức mạnh của ý tưởng để thúc đẩy các giải pháp và cách tiếp cận mới nhằm giúp chúng ta đối mặt với những thách thức cấp bách, đặc biệt là khủng hoảng khí hậu. Tôi xem mình là người tự học, không ngừng trau dồi và là một người ủng hộ vững chắc cho tính đa ngành. Không bao giờ là quá muộn để học điều mới.

Chủ đề
Khoa học Dữ liệu
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm