Asked Sep 22nd, 3:14 AM 224 0 5
  • 224 0 5
+1

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

Share
  • 224 0 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 ANSWERS


Answered Sep 22nd, 6:29 AM
+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.
Share
Minh Ngo @MinhNgo
Sep 23rd, 2:41 AM
Answered Sep 23rd, 3:19 AM
+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ó)
Share
Answered Sep 22nd, 3:25 AM
+2

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

Share
Answered Sep 22nd, 3:22 AM
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.
Share
Answered Sep 29th, 9:05 AM
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

Share