07/09/2018, 13:40

Tìm Hiểu Về Rebase Trong Git

Git Rebase Là Gì Git Rebase là một cách thuận biện để áp dụng lại những commit mới trong một branch trên đỉnh của một branch khác. Để hiểu hơn định nghĩa trên thì cách tốt nhất đó là bắt đầu sử dụng câu lệnh này. Sử Dụng Git Rebase Ví dụ repository của bạn có hai branch là master và topic. ...

Git Rebase Là Gì

Git Rebase là một cách thuận biện để áp dụng lại những commit mới trong một branch trên đỉnh của một branch khác.

Để hiểu hơn định nghĩa trên thì cách tốt nhất đó là bắt đầu sử dụng câu lệnh này.

Sử Dụng Git Rebase

Ví dụ repository của bạn có hai branch là master và topic. Trong branch topic bạn có các commit mới với tên là A, B và C mà branch master không có. Đồng thời lúc này branch topic cũng không có các commit E, F và G trên branch master. Bạn có thể tham khảo hình minh hoạ sau để dễ hình dung:

Git rebase minh hoạ ví dụ 1

Lúc này sử dụng câu lệnh:

$ git rebase master topic

Sẽ áp dụng các commit mới trong branch topic trên commit mới nhất của branch A. Kết quả sau khi chạy câu lệnh sẽ như trong hình minh hoạ sau đây:

Git rebase minh hoạ kết quả ví dụ 1

Nếu branch hiện tại bạn đang làm việc là topic thì bạn có thể bỏ qua tên branch này khi chạy câu lệnh trên:

$ git rebase master

Ngược lại branch hiện tại không phải là topic thì bạn cần sử dụng câu lệnh đầy đủ trước đó. Git lúc này sẽ tự động thực hiện câu lệnh git checkout topic trước khi thực hiện git rebase master.

Trong trường hợp master branch đã có một commit từ branch topic thì khi rebase Git sẽ bỏ qua commit này. Ví dụ như trường hợp commit A trên branch topic đã được merge vào branch master ở commit A' (lưu ý khi merge Git cũng sẽ tạo một commit mới):

Git rebase minh hoạ ví dụ 2

Lúc này khi thực hiện rebase kết quả sẽ như sau:

Git rebase minh hoạ kết quả ví dụ 2

Ngoài ra bạn cũng có thể bạn chạy câu lệnh rebase mà không cần sử dụng tên một branch nào như sau:

$ git rebase

Trường hợp này Git sẽ áp dụng việc rebase commit vào branch hiện tại và branch được sử dụng để Git rebase từ đó sẽ là branch được thiết lập mặc định khi merge (thường là master).

Kết Luận

Trên đây chúng ta đã tìm hiểu cơ bản về cách sử dụng rebase trong Git. Ở các bài học tiếp theo chúng ta sẽ tìm hiểu về một câu lệnh khác cũng được sử dụng khá thường xuyên đó là git merge.

0