Khi trang người đàn ông nói, -s ours
bỏ qua nội dung của toàn bộ chi nhánh khác. Điều này phải đủ rõ ràng: không có vấn đề gì trong các chi nhánh khác, cây gắn liền với cam kết hợp nhất là giống với cây trong cam kết HEAD
trước khi hợp nhất.
Điều gì -X ours
không tinh tế hơn: nó sử dụng phiên bản "của chúng tôi" của thay đổi chỉ khi có xung đột.
Đây là một ví dụ tương đối đơn giản.
Giả sử bạn đang ở trên chi nhánh br1
và bạn yêu cầu nhập vào chi nhánh br2
.Chúng tôi sẽ làm cho các thực sự đơn giản, với cam kết B
(nguồn gốc cơ sở hợp nhất cho cả chi nhánh) có một cam kết duy nhất K
trên nhánh br1
, và một cam kết duy nhất L
trên nhánh br2
:
... - B - K <-- HEAD=br1
\
L <-- br2
Hơn nữa, sự khác biệt từ B
-K
bao gồm chỉ có một mục:
- thay đổi (đã có sẵn) nộp
f1
: thay thế đầu tiên dòng dog
với cat
012.
Trong khi đó, sự khác biệt B
-L
gồm:
- tập tin thay đổi
f1
: thay thế dòng đầu tiên dog
với poodle
- tập tin thay đổi
f2
: thay thế dòng cuối cùng elephant
với rhinoceros
Khi bạn hợp nhất các chiến dịch này không có chiến lược hoặc tùy chọn, sẽ có b e xung đột trong tệp f1
(các thay đổi khác nhau cho cùng một dòng), nhưng không phải trong f2
(cam kết hợp nhất sẽ thay đổi trong cam kết L
để tệp f2
sẽ thay đổi).
Nếu bạn sử dụng:
git merge -s ours br2
lệnh hợp nhất sẽ sử dụng phiên bản "của chúng ta" của tập tin f1
(dog
trở thành cat
), và cũng phiên bản của chúng ta về tập tin f2
(elephant
là không thay đổi).
Nếu bạn sử dụng:
git merge -s recursive -X ours
lệnh hợp nhất sẽ tìm thấy một mâu thuẫn trong hồ sơ f1
và sẽ giải quyết nó trong lợi của chúng tôi phiên bản này cũng giống như trước đây, nhưng không có mâu thuẫn trong hồ sơ f2
, do đó git sẽ sử dụng phiên bản f2
(elephant
của chúng tôi sẽ trở thành rhinoceros
).
(ví dụ đơn giản này không hiển thị những gì sẽ xảy ra nếu có hai sự thay đổi khác nhau trong các lĩnh vực khác nhau trong f1
hoặc f2
. Nếu f1
là đủ dài và có một sự thay đổi trong phạm L
tiếp tục xuống hơn "dòng đầu tiên của tập tin" , hợp nhất có thể nhận thay đổi đó vì nó sẽ không xung đột với sự thay đổi dog
-to- cat
.)