Trong bài bác này sẽ nói về sự khác biệt của rebase cùng merge để dễ dàng nắm bắt vấn đề hãy coi ví dụ mặt dưới.

Bạn đang xem: Tự học git

Giả sử ban sơ đã có 3 commit A, B, C:

*

sau kia developer Dung sản xuất commit D, với developer Egg chế tạo ra commit E:

*

rõ ràng, cuộc xung bỗng này nên được giải quyết bằng phương pháp nào đó. Đối với điều này, có 2 cách:

MERGE :

*

Cả hai commit D cùng E vẫn còn làm việc đây, nhưng công ty chúng tôi tạo ra phối commit M mà biến hóa thừa hưởng trọn từ cả hai D và E. Tuy nhiên, điều này tạo ra hình dạng kim cương, mà nhiều người thấy rất nặng nề hiểu. Nếu bạn có hàng chục commit D và E thì bạn có có hàng trăm viên kim cưng cửng M dịp này bạn sẽ thấy log rối đến hơn cả nào!?

REBASE :

*

Chúng tôi tạo nên commit R, nhưng mà nội dung thực tế file là giống hệt nhau của merge commit M sống trên. Tuy nhiên, họ thoát khỏi commit E, y hệt như nó không khi nào tồn trên (denoted bằng dấu chấm – vanishing dòng). Điều này sẽ khiến cho commit của doanh nghiệp nhìn dễ dàng nắm bắt hơn.

Vì obliteration này, E sẽ sở hữu local để developer Ed và đề xuất đã không lúc nào được đẩy đến ngẫu nhiên các kho tàng trữ khác. Lợi thế của rebase là kim cương hình dạng tránh được, và lịch sử vẫn đẹp đường thẳng.

Sau đấy là một so sánh log của rebase cùng merge 1 branch vào một mini project:

*

A) History dùng rebase nhìn clear và thuận lợi tracking do thiết yếu bạn tạo nên một cách khối hệ thống và logic! B) History dùng merge nhìn cực nhọc hiểu và khi tracking các bạn sẽ nói gì quanh đó bullshit do chính bạn commit với merge vô tội vạ! C) Transport plan của git, đa số chổ cần sử dụng rebase sẽ thằng sản phẩm còn merge đang chỉa qua lại nhìn bao quát là ảnh hưởng các branch.

Kết Luận:

Chú ý vào rebase, mọi người sẽ thấy commit của rebase nằm phía trên commit mới nhất của master. Còn ngơi nghỉ merge, mọi fan sẽ thấy commit của master nằm bên trên commit tiên tiến nhất của merge, dường như một commit Merge branch cũng được tạo ra.Ban áp dụng git rebase ví như như bạn muốn các sự biến đổi thuộc về branch của người tiêu dùng luôn luôn luôn là bắt đầu nhất. Và bạn có thể log một cách có khối hệ thống dễ nhìn, dễ tracking sao này.Bạn thực hiện git merge nếu bạn có nhu cầu sắp xếp các commit theo mang định. Bạn không biết về hầu hết gì mình làm cái gi trên branch kia thì dùng merge cho bảo đảm an toàn việc tracking sao này rất có thể tốn nhiều thời gian lần mò.

Xem thêm: Adobe Là Gì? Adobe Có Những Phần Mềm Nào? ? Adobe Là Gì

Một số sự việc cần xem xét sau:

Git rebase thì phải dùng trên branch riêng, nó đã đẩy history commit của branch lên, history commit sẽ tách bóc biệt hẳn với phần nhiều commit tự branch khác, siêu tiện cho quản lý các branch. Đặt biệt khi chúng ta có những branch master / develop / hot-fix / features / release …Cả rebase với merge đang conflict kinh khủng khiếp hơn còn nếu như không update code thường xuyên chứ chưa phải chỉ bao gồm rebase như mọi bạn thường nói đâu nhé. Ví dụ: nếu như master branch có time line rộng branch của doanh nghiệp 1 tháng 
*
. Thời gian đó hãy rebase tốt merge branch của người tiêu dùng và đã thấy conflict 2 cái tất cả khác gì nhau! Git merge là tạo nên git commit list dài ra áp dụng cho branch riêng thì ko phù hợp vì khó khăn trace log vì nhiều commit dài thòn không hẳn do chúng ta tạo ra!?. Tốt nhất là trong 1 dự án dài hơi, vấn đề nhìn lại log của vài mon trước có thể sẽ là vụ việc trong khung trời đầy sao chổi với bạn.