Yêu cầu thg 9 22, 2020 3:14 SA 541 2 5
  • 541 2 5
+3

Sự khác nhau giữa git merge và git rebase là gì ?

Chia sẻ
  • 541 2 5

E có tìm hiểu về Git những vẫn chưa hiểu rõ sự khác nhau giữa git merge và git rebase là gì ? Có anh chị nào biết chỉ em với ạ. Cái nào được sử dụng nhiều hơn ạ ?

5 CÂU TRẢ LỜI


Đã trả lời thg 9 22, 2020 6:29 SA
+3

merge sẽ viết tiếp lịch sử, còn rebase viết lại lịch sử. vì vậy sau khi merge bạn luôn có thể push bình thường, còn rebase bạn có thể sẽ phải push force.

Vậy tại sao phải dùng rebase theo mình thì có những lợi ích chính sau

  • lịch sử commit khi merge vào master đẹp, đễ kiểm soats
  • dễ dàng fix conflict hơn, vì nó tạo lịch sử mới đối với mỗi commit, nên bạn sẽ fix conflict từng commit.
Chia sẻ
Avatar Minh Ngo @MinhNgo
thg 9 23, 2020 2:41 SA
Đã trả lời thg 9 23, 2020 3:19 SA
+3
  • merge được dùng khi bạn hoàn thành xong 1 feature, 1 hotfix nào đó rồi merge vào nhánh chính
  • rebase được sử dụng khi bạn muốn tái sử dụng / kế thừa 1 feature nào đó mà nhánh chính (hoặc nhánh khác đang có)
Chia sẻ
Đã trả lời thg 9 22, 2020 3:25 SA
+2

góp vui hình ảnh cho sinh động nha =)) 4fthn7.jpg

Chia sẻ
Đã trả lời thg 9 22, 2020 3:22 SA
0

Merge và Reabse đều dùng để giải quyết một vấn đề nhé bạn. Tuy nhiên thì nó lại giải quyết theo hai hướng khác nhau : ( ở đây nhánh chính mình lấy ví dụ develop là nhánh chính nhé )

  • Merge : thằng này sẽ tạo ra một commit merge mới, ghép lại lịch sử của 2 nhánh.
  • Rebase : thì nó sẽ lấy toàn bộ commit của thằng feature mới ghép tiếp với đầu của thằng develop.
Chia sẻ
Đã trả lời thg 9 29, 2020 9:05 SA
0

Bạn xem ảnh dưới sẽ hiểu ngay nhé 😃

Merge và Rebase đều nhằm một mục đích là cập nhật source code ở nhánh đích về nhánh nguồn (ví dụ git rebase/merge develop đều là cập nhật source code của develop về nhánh hiện tại)

Tuy nhiên merge thì tạo thêm 1 commit mới vào nhánh hiện tại và không thay đổi lịch sử commit. Còn rebase (dịch theo nghĩa đen là tạo lại base) sẽ sửa lại lịch sử commit của nhánh hiện tại.

Hiểu được việc này bạn sẽ quyết định được sử dụng rebase hay merge tốt hơn trong từng trường hợp cụ thể nhé.

Chúc bạn thành công.

git-rebase.png

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí