Bạn có thể git merge master
hoặc git rebase master
, trong trường hợp này tôi thích git rebase hơn .
Bởi vì git rebase
làm cho nó như thể những thay đổi trên nhánh tính năng được thực hiện trên đầu những thay đổi trên nhánh chính, điều này làm cho biểu đồ phiên bản đơn giản hơn.
Nổi loạn
Lấy ví dụ từ hướng dẫn git rebase , git rebase master
trong nhánh feature
:
A---B---C feature A'--B'--C' feature
/ --rebase--> /
D---E---F---G master D---E---F---G master
Tuy nhiên, git rebase
chỉ phù hợp khi chi nhánh chưa được phân phối, hoặc sẽ có sự nhầm lẫn và công việc phụ ở hạ lưu, vì các cam kết cũ A, B, C hiện được thay thế bằng các cam kết mới A ', B', C ', cộng với F và G mà trước đó không có.
Kết quả thực tế sau khi git rebase master
ở chi nhánh feature
là:
( A---B---C )
/
/ A'--B'--C' feature
/ /
D---E---F---G master
Cam kết A, B, C đang lơ lửng sau cuộc nổi loạn, nhưng có thể truy cập thông qua git reflog feature
.
Hợp nhất
Nếu ai đó đã kéo chi nhánh của bạn hoặc bạn đã đẩy nó vào một nơi nào đó, bạn nên hợp nhất vào đó để tránh nhầm lẫn và làm thêm ở đầu bên kia. Xem Phục hồi từ rebase ngược dòng .
Đây là kết quả của git merge master
chi nhánh feature
:
A---B---C feature A---B---C---M feature
/ --merge--> / ,---’
D---E---F---G master D---E---F---G master
Ngoài ra, nếu bạn git merge feature
ở chi nhánh master
, nó sẽ trông như thế này:
A---B---C feature A---B---C feature
/ --merge--> / \
D---E---F---G master D---E---F---G---M master