2012-11-07 28 views
19

Đối với việc sáp nhập Tôi sử dụng này để "giữ của tôi"git merge, giữ cả

git merge -X ours foo 

và điều này cho "giữ họ"

git merge -X theirs foo 

Tuy nhiên trên merge mới nhất của tôi có vẻ tốt nhất để giữ cho cả hai hai bên. Git có một "chiến lược" cho việc này, để tránh chỉnh sửa thủ công tệp không?

+0

chấp nhận câu trả lời nếu nó là hữu ích cho bạn – tinybyte

Trả lời

12

Không có 'hợp nhất chiến lược' để giải quyết các xung đột này.

Tuy nhiên, nếu bạn thực sự muốn có một cuộc xung đột như:

<<<< ours 
Foo 
========= 
Bar 
>>>> theirs 

để giải quyết để

Foo 
Bar 

thì bạn có thể cấu hình 'sáp nhập tài xế'. Từ trang gitattributes người đàn ông:

đoàn

Run 3 chiều độ tập tin hợp nhất cho các tập tin văn bản, nhưng mất dòng từ cả hai phiên bản, thay vì để đánh dấu cuộc xung đột. Điều này có xu hướng để lại các dòng được thêm vào trong tệp kết quả theo thứ tự ngẫu nhiên và người dùng phải xác minh kết quả. Không sử dụng điều này nếu bạn không hiểu các tác động.

Thêm một dòng vào .gitattributes sử dụng này:

*.whatever merge=union 
+6

Union không bản đồ để "giữ cả". Liên minh là "giữ cả hai" trừ giao lộ. Điều này sẽ thất bại khủng khiếp khi cố gắng "giữ cả hai" trên XML như các tệp tài nguyên. –

+0

Trong trường hợp 2 xung đột khác nhau, chúng dường như được giữ cả hai, đầy đủ. – max630

+0

[Ở đây] (http://pastebin.com/LrnAEMLs) là một bản trình diễn ngắn – max630

Các vấn đề liên quan