Từ trang man trên git-merge, có một số chiến lược hợp nhất bạn có thể sử dụng.
giải quyết - Điều này chỉ có thể giải quyết hai đầu (tức là nhánh hiện tại và nhánh khác mà bạn đã kéo từ đó) bằng thuật toán hợp nhất 3 chiều. Nó cố gắng cẩn thận phát hiện sự mơ hồ hợp nhất chéo và được coi là nói chung an toàn và nhanh chóng.
đệ quy - Điều này chỉ có thể giải quyết hai đầu bằng thuật toán hợp nhất 3 chiều. Khi có nhiều hơn một tổ tiên chung có thể được sử dụng để hợp nhất 3 chiều, nó sẽ tạo ra một cây hợp nhất của tổ tiên chung và sử dụng đó làm cây tham chiếu cho hợp nhất 3 chiều. Điều này đã được báo cáo dẫn đến ít xung đột hợp nhất hơn mà không gây ra sự hợp nhất sai bởi các thử nghiệm được thực hiện trên các cam kết hợp nhất thực tế được lấy từ lịch sử phát triển nhân Linux 2.6. Ngoài ra, điều này có thể phát hiện và xử lý các hợp nhất liên quan đến đổi tên. Đây là chiến lược hợp nhất mặc định khi kéo hoặc sáp nhập một nhánh.
bạch tuộc - Điều này giải quyết nhiều hơn trường hợp hai đầu, nhưng từ chối thực hiện hợp nhất phức tạp cần giải quyết thủ công. Nó chủ yếu có nghĩa là được sử dụng để bó các đầu chi nhánh chủ đề lại với nhau. Đây là chiến lược hợp nhất mặc định khi kéo hoặc hợp nhất nhiều chi nhánh.
của chúng tôi - Điều này giải quyết bất kỳ số lượng đầu, nhưng kết quả của sự hợp nhất luôn luôn là đầu chi nhánh hiện tại. Nó có nghĩa là được sử dụng để thay thế lịch sử phát triển cũ của các nhánh bên.
cây con - Đây là một chiến lược đệ quy sửa đổi. Khi hợp nhất cây A và B, nếu B tương ứng với cây con của A, B trước tiên được điều chỉnh để phù hợp với cấu trúc cây của A, thay vì đọc các cây ở cùng cấp độ. Điều chỉnh này cũng được thực hiện cho cây tổ tiên chung.
Khi nào tôi nên chỉ định một cái gì đó khác với mặc định? Những kịch bản nào là tốt nhất cho?