- vừa được xem lúc

Một bài viết dễ hiểu về "git rebase". Lợi ích của git rebase so với khi dùng git merge

0 0 4

Người đăng: Tờ Mờ Sáng học Lập trình

Theo Viblo Asia

Mở bài

Khi làm việc với Git, sẽ có lúc chúng ta cần kết hợp các commit từ branch này và một branch khác (nội dung bên dưới sẽ có ví dụ minh họa cụ thể)

Điều này có thể được thực hiện bằng cách sử dụng lệnh git merge hoặc git rebase.

Trong bài viết này, chúng ta sẽ tập trung vào git rebase, cách hoạt động của nó như thế nào mà lại có thể giúp chúng ta đơn giản hóa lịch sử commit của git.

git rebase là gì?

Rebase có thể được hiểu là "di chuyển phần base của một branch sang một vị trí khác"

Giả sử, dự án của bạn vừa release một bản production.

Trong lúc tiếp tục code tính năng mới trên branch có tên là new_feature, thì phát hiện có bug trong bản release (main branch).

Để khắc phục, bạn tạo một branch khác có tên quick_fix, sau đó thực hiện fix bugmerge vào main branch.

Tuy nhiên lúc này mainnew_feature đã phân tách và có lịch sử commit khác nhau như hình dưới đây:

image.png

Nếu muốn cập nhật các thay đổi từ main vào new_feature, nhiều bạn sẽ lựa chọn sử dụng git merge.

Nhưng ngoài ra, còn một giải pháp khác đó là sử dụng git rebase. Với git rebase, chúng ta có thể giữ lịch sử commit rõ ràng và dễ theo dõi.

Bằng cách rebasing new_feature vào main, bạn đã chuyển tất cả các commit được thực hiện từ new_feature về phía sau của main branch như hình dưới đây:

image.png

Lợi ích của git rebase so với khi dùng git merge

Có thể thấy, base mới của branch new_feature đã được cập nhật thành main branch mới nhất, mà trong đó bao gồm cả những thay đổi từ việc fix bug (quick_fix branch)

Một trong những lợi ích chính của việc sử dụng git rebase đó là nó sẽ không sinh ra các merge commit không cần thiết như khi chúng ta sử dụng git merge.

Quan trọng nhất, lịch sử commitmain branch vẫn tuyến tính, giúp chúng ta kiểm tra lại các thay đổi dễ dàng hơn trong log hoặc graph.

image.png

Lưu ý khi sử dụng git rebase

git rebase có thể rất hữu ích, nhưng nó cũng đi kèm một số rủi ro mà chúng ta cần phải lưu ý.

Lưu ý số 1: Chỉ dùng trên local repository.

Một khi commit đã được push lên remote repository, thì đừng rebase nó.

git rebase sẽ thay đổi lịch sử commit, nên chúng ta cũng sẽ phải giải quyết nhiều conflict hơn. Bạn có thể sẽ phải xử lý lại những conflict đã được giải quyết ở những lần merge trước đó.

Để giảm số lượng merge conflict, bạn cần nhớ thực hiện rebase thường xuyên.

Lưu ý số 2: Không rebase trên branch dùng chung (ví dụ branch develop, main)

git rebase sẽ thay đổi lịch sử commit, nên nếu người khác bắt đầu pull code từ nhánh dùng chung về và thêm những commit khác, lịch sử commit sẽ không thể đồng bộ được nữa.

Vì vậy luôn nhớ QUY TẮC VÀNG, chỉ sử dụng git rebase trên một local branch mà bạn đang thực hiện riêng lẻ một mình.

Kết bài

git rebase là công cụ rất hữu ích khi dự án làm việc với nhiều người và nhiều branch, nếu được sử dụng đúng cách, nó sẽ giúp anh em có thể có được một lịch sử commit rất rõ ràng.

Tuy nhiên, điều quan trọng là phải hiểu cách thức hoạt độngnhững rủi ro đi kèm của nó.

Follow mình để cập nhật những thông tin thú vị về Lập trình nhé:

Facebook: Tờ Mờ Sáng học Lập trình

Youtube: Tờ Mờ Sáng học Lập trình

TikTok: Tờ Mờ Sáng học Lập trình

TikTok: CLB Lập trình - THPT Ngọc Tảo

Tài liệu tham khảo

Khóa học "Learn Git & GitHub" trên codecademy: https://www.codecademy.com/enrolled/courses/learn-git

Bình luận

Bài viết tương tự

- vừa được xem lúc

Cách sử dụng Git Reset to HEAD

Khi làm việc trong một dự án có nhiều thành viên,việc các thành viên trong nhóm có thể tạo branchs,thêm, sửa và xóa files trong dự án. Sau đó thực hiện commits lên git khi hoàn thành code.

0 0 30

- vừa được xem lúc

[DEVOPS] [GIT] GIT dễ như ăn kẹo.

Xin chào các mọi người. Trong bài viết này mình sẽ làm về GIT.

0 0 21

- vừa được xem lúc

[Phần 1]Thực hành - Tổng quan về Git và những câu lệnh cơ bản

Xin chào mọi người, chúc mọi người một ngày làm việc vui vẻ. và phần 2: https://viblo.

0 0 15

- vừa được xem lúc

[GIT] Làm việc với Git như một Senior

Khai niệm. . Git được hiểu đơn giản là một Version quản lý source-code. Hiện tại git được sử dụng rộng rãi trong quy trình phát triển phần mềm.

0 0 23

- vừa được xem lúc

git reflog - Phao cứu sinh những lỗi lầm hay gặp trên Git

Chào các bạn, lại là mình - Hữu Ngọc Tiên Sinh đây. Chắc hẳn Git đã trở thành một công cụ rất rất quen thuộc đối với các bạn rồi phải không, vậy có thể trong quá trình làm việc với Git, bạn đã từng gặ

0 0 14

- vừa được xem lúc

Chốt sổ MayFest bằng cách Git CheatSheet

Git, phần mềm quản lý mã nguồn phân tán được phát triển bởi Linus Torvalds vào năm 2005 (Wikipedia viết thế), một công cụ quen thuộc đến nỗi "không một lập trình viên nào không biết" về nó. Vậy Git có

0 0 10