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 Rebase và Git Merge. Vậy Git Rebase là gì và khi nào nên sử dụng? 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.

Git Rebase là gì?
Định nghĩa cơ bản về Git Rebase. Nguồn: Unsplash

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

Lí do chính sử dụng chính của Git Rebase đó 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 riêng và cùng lúc đó, branch master có nhiều sự phát triển. Bạn muốn cập nhật branch của mình theo branch master, đồng thời lại muốn giữ lịch sử của branch mình không xê dịch để trông như thể bạn đã không bị ảnh hưởng bởi những cập nhật mới nhất này. Điều này sẽ giúp bạn merge nhánh phụ một cách gọn gàng hơn vào nhánh chính về sau. Ngoài ra, việc lưu trữ một lịch sử branch không bị thay đổi sẽ giúp các kỹ sư điều tra nguồn gốc của phân tích hồi quy trong những giai đoạn sau dễ dàng hơn.

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ị xê dịch 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 chúng ta sử dụng Git Rebase, điều này sẽ cho dev nhiều lựa chọn hơn trong việc xác định bugs.
  4. 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.
Git Rebase có nhiều ứng dụng trong thực tế
Một vài ví dụ thực tế của Git Rebase. Nguồn: Unsplash

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

Git Rebase tương tác là khi Git Rebase 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 thường được ưa chuộng hơn bởi các Dev vì nó cho họ nhiều sự tự do hơn
Git Rebase tương tác và tiêu chuẩn, các Dev nên dùng cái nào? Nguồn: Unsplash

Đạ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ể được chứng kiến trong lịch sử của những master branch. Với những người khác, bạn cứ như thể 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é!

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
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ì? Git Pull đượ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 […]
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ì […]
Git Commit là gì? Git Commit được sử dụng như thế nào?

Git Commit là gì? Git Commit được sử dụng như thế nào?

Trong Git có một lệnh cho phép các lập trình viên ghi những thay đổi của dự án một cách dễ dàng gọi là Git Commit. Vậy chính xác Git Commit là gì? Git Commit được sử dụng như thế nào? Hãy cùng Got It tìm hiểu trong bài viết dưới đây nhé! Mục lụcGit […]
8 tính năng hữu ích của Git Stash

8 tính năng hữu ích của Git Stash

Trong quá trình làm việc với Git Tools, chắc hẳn các bạn đều đã nghe đến khái niệm Git Stash. Vậy nó là gì? Làm thế nào để công việc đơn giản hơn với công cụ này? Hãy cùng Got It Vietnam khám phá qua bài viết sau nhé! Mục lục1. Git Stash là gì?2. […]
Git Rebase là gì? Khi nào nên sử dụng Git Rebase?

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 Rebase và Git Merge. Vậy Git Rebase là gì và khi nào nên sử dụng? 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. Mục lục1. Git […]