Git Rebase là gì? Khi nào nên sử dụng Git Rebase?

Hai khái niệm làm nhiều kỹ sư IT đau đầu và khó phân biệt nhất chắc chắn là Git RebaseGit Merge. Vậy Git Rebase là gì và khi nào nên sử dụng Git Rebase? Tất cả những câu hỏi này sẽ được giải đáp trong bài viết này của Got It Vietnam.

1. Git Rebase là gì?

Hiểu một cách nôm na thì Git Rebase là một chức năng của Git, được sử dụng để nhập một branch đã gần hoàn thiện vào branch gốc (branch master). Rebasing có thể hiểu là quá trình chuyển đổi gốc của 1 branch từ 1 commit này (commit ban đầu) tới một commit khác, việc này trông như thể bạn đã tạo branch của mình từ một commit hoàn toàn khác so với ban đầu. Một điều quan trọng mà các bạn phải nhớ đó là dù branch có thể giống y hệt nhau, nhưng chúng đã được tạo ra bởi các commit hoàn toàn khác nhau.

Định nghĩa cơ bản về Git Rebase

2. Sử dụng Git Rebase trong trường hợp nào?

Tác dụng chính của chức năng này là lưu giữ lịch sử làm việc của dự án một cách tuyến tính.

Ví dụ, hãy tưởng tưởng rằng bạn đang làm việc trên một branch feature và cùng lúc đó, branch master có nhiều sự phát triển, tahy đổi. Bạn muốn cập nhật branch của mình theo branch master, nhưng không lưu lại các thông tin cập nhật trong branch history. Đây chính là lúc bạn cần sử dụng Git Rebase. Một lịch sử git tuyến tính và ít rẽ nhánh sẽ giúp lập trình viên dễ dàng hơn trong việc truy vết các thay đổi.

3. Ví dụ thực tế

Trong thực tế, cụ thể hơn là trong công việc của các bạn, sẽ có những lúc chúng ta nên cân nhắc sử dụng Git Rebase:

  1. Một bug được phát hiện trong branch master. Một tính năng, vốn trước đang làm việc hiệu quả thì giờ không hoạt động được. Nhờ các lịch sử chỉnh sửa không bị thay đổi vị trí nên dev có thể xác định lỗi nhanh hơn.
  2. Một dev sử dụng git log kiểm tra lịch sử của branch master. Nhờ lịch sử chỉnh sửa của các nhánh không xê dịch mà dev đã nhanh chóng xác định được lịch sử chỉnh sửa của cả dự án
  3. Trong trường hợp dev không thể xác định bug bằng git log, họ có thể tiến hành git bisect. Nếu sử dụng Git Rebase, dev nhiều lựa chọn hơn trong việc xác định bugs. Bởi lịch sử Git không bị chỉnh sửa, git bisectcó rất nhiều các bộ commits để so sánh khi kiểm thử hồi quy. Điều này giúp dev có thể tìm ra commit chứa bugs nhanh hơn và phản hồi kịp thời.

4. Git Rebase tiêu chuẩn và Git Rebase tương tác

Git Rebase tương tác là khi chức năng này chấp nhận đối số -- i, trong đó chữ I tượng trưng cho “Interactive”. Nếu không có đối số, các lệnh sẽ chạy theo chế độ tiêu chuẩn. Trong cả hai trường hợp, hãy cứ giả sử rằng chúng ta đã tạo những branch tính năng riêng biệt:

Lúc này, Git Rebase tiêu chuẩn sẽ tự động lấy những commit trong branch bạn đang làm việc và để chúng lên đầu của branch đã hoàn thành khi gộp.

Còn đối với Git Rebase tương tác, thay vì cứ tự động di chuyển tất cả các commit tới base mới, nó cho phép các nhà phát triển cơ hội để lựa chọn các commits riêng biệt trong quá trình đó. Điều này giúp các bạn dọn dẹp lịch sử chỉnh sửa gọn gàng hơn bằng cách xoá bỏ, hoặc chia tách và lựa chọn một chuỗi các commits đang tồn tại.

Git Rebase tương tác cho bạn quyền kiểm soát hoàn toàn về lịch sử chỉnh sửa của dự án. Nó cũng cho các dev nhiều sự tự do hơn, giúp họ có thể tuỳ ý để lịch sử chỉnh sửa của mình lộn xộn khi đang trong giai đoạn viết code và quay lại dọn dẹp nó vào lúc sau.

Git Rebase tương tác và tiêu chuẩn, các Dev nên dùng cái nào?

Tại sao nên sử dụng Rebase tương tác?

Đại đa số các dev đều thích sử dụng Rebase kiểu tương tá vì nó cho phép họ có thể “trang trí” nhánh của họ trước khi merge. Điều này có nghĩa là họ có thể xoá những commits không quan trọng hay đã lỗi thời, đồng thời sắp xếp lại lịch sử branch của mình sao cho logic và khoa học nhất có thể.

Sức mạnh thực sự của Rebase tương tác có thể bộc lộ rõ khi xem lại trong lịch sử của những master branch. So sánh với những người khác, bạn sẽ là một dev xuất sắc với số lượng cũng như cách sắp xếp các commits luôn ở mức hoàn hảo.

Hy vọng qua bài viết này, Got It Vietnam đã cung cấp tới bạn đọc những thông tin hữu ích về khái niệm cũng như cách sử dụng của Git Rebase nhé!

Nguồn tham khảo: Atlassian

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

https://d1iv5z3ivlqga1.cloudfront.net/wp-content/uploads/2021/04/29235048/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
February 09, 2021
Share this post to:
Tags:
git
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
Hướng dẫn chi tiết cách push code lên Git

Hướng dẫn chi tiết cách push code lên Git

Có lẽ các bạn theo đuổi lĩnh vực IT đã quen thuộc với Git và GitHub rồi đúng không nhỉ? Tuy nhiên, Got It nhận thấy, một vài bạn đọc theo dõi blog vẫn còn mơ hồ, hoặc chưa biết cách để push code lên Git. Vậy thì hôm nay, chúng mình sẽ mang đến […]
Hướng dẫn cách tạo branch trong Git

Hướng dẫn cách tạo branch trong Git

Làm việc trực tiếp trong branch (nhánh) chính của một repository trên GitHub sẽ vô cùng nguy hiểm. Bởi lẽ, bạn sẽ có nguy cơ đưa những dòng code lỗi (bug) vào project đó mà không thông qua việc review code. Vì vậy, để tránh điều này xảy ra, bạn nên tạo một branch mới […]
Git fetch là gì? Phân biệt git fetch và git pull

Git fetch là gì? Phân biệt git fetch và git pull

Rất nhiều các bạn đang làm việc trong lĩnh vực IT thắc mắc về cách phân biệt giữa git fetch và git pull. Vậy git fetch là gì? Câu lệnh này hoạt động như thế nào? Và đâu là sự khác biệt giữa hai lệnh git fetch và git pull? Hãy cùng Got It tìm […]
Git và GitHub — liệu bạn đã thật sự biết cách sử dụng?

Git và GitHub — liệu bạn đã thật sự biết cách sử dụng?

Biến Git và GitHub trở thành công cụ đắc lực cùng Software Engineer nhà Got It!
Git Pull là gì? Mô hình hoạt động của lệnh Git Pull

Git Pull là gì? Mô hình hoạt động của lệnh Git Pull

Vì lệnh Git Fetch và Git Merge được sử dụng thường xuyên nên Git đã kết hợp hai lệnh này thành một lệnh đặc biệt gọi là Git Pull. Vậy Git Pull là gì? Nó được sử dụng như thế nào? Trong bài viết này, Got It sẽ mang đến cho các bạn một cái […]
Git Merge là gì? Những kiến thức cơ bản về Git Merge

Git Merge là gì? Những kiến thức cơ bản về Git Merge

Hợp nhất là một quá trình rất quan trọng khi làm việc với Git. Trong bài viết này, chúng ta sẽ thảo luận về lệnh hợp nhất Git Merge rất quen thuộc trong Git. Nếu bạn là người mới bắt đầu sử dụng Git và đang muốn hiểu quy trình hợp nhất trong Git, thì […]