Ta có 1 nhánh chính master và nhánh con bugFix. Hiện tại, ta đang đứng ở branch master. Sản phẩm tiếp tục được phát triển, thành viên khác làm việc ở nhánh bugFix đã cập nhật thêm những commit mới. Để chuẩn bị cho buổi demo sản phẩm, ta phải tích hợp những commit ở nhánh bugFix vào nhánh master. Git đưa ra 2 cách giải quyết vấn đề: Merge hoặc Rebase.
Ta merge nhánh bugFix vào nhánh đang làm việc bằng các thao tác:
git checkout master git merge bugFix
Với cách làm này, một commit merge mới sẽ xuất hiện ở lịch sử commit của nhánh master, giống như một mối nối để ghép lại lịch sử của cả 2 nhánh. Ta sẽ có một cấu trúc commit trông giống như này:
Merge làm cho những nhánh đang tồn tại không bị thay đổi.
Để tích hợp những thay đổi ở nhánh bugFix vào nhánh master, ta sử dụng rebase:
git checkout bugFix git rebase master
Thao tác này sẽ đưa toàn bộ những commit mới tạo ở nhánh bugFix nối tiếp vào “ngọn” của nhánh master, nó sẽ viết lại lịch sử của project bằng cách tạo ra những commit mới ứng với mỗi commit ban đầu của nhánh bugFix
Rebase sẽ giúp loại bỏ những commit không cần thiết như khi sử dụng git merge và giúp tạo ra lịch sử commit có dạng tuyến tính, xuyên suốt project từ khi bắt đầu cho đến hiện tại. Ta có thể dễ dàng điều hướng và kiểm tra lịch sử project bằng git log.
Nếu so với rebase thì merge là cách có thể tích hợp với master với rất nhiều nhánh trong 1 lần . Tuy nhiên trường hợp tích hợp bằng merge thì những commit của branch sẽ hoàn toàn không được record lại . Do vậy nếu chúng ta muốn lưu lại một cách chuẩn xác flow của dự án thì Rebase là phương pháp nên được sử dụng
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE