Buộc Git luôn chọn phiên bản mới hơn trong quá trình hợp nhất?


103

Giả sử tôi mergegit và có một xung đột hợp nhất.

Câu hỏi của tôi là: làm cách nào để buộc git luôn chọn phiên bản mã mới hơn trong xung đột để tôi không cần phải giải quyết xung đột bằng tay?



nhưng tôi muốn thực hiện hợp nhất (không ghi đè cam kết), mà còn để giải quyết xung đột một cách tự động.
bartek

Câu trả lời:


188

Nó không chính xác là phiên bản "mới hơn", nhưng bạn có thể nói git luôn thích phiên bản trên nhánh hiện tại đang sử dụng git merge branch -X ourshoặc thích phiên bản của nhánh đang được hợp nhất git merge branch -X theirs.

Từ man git-merge:

của chúng tôi:

Tùy chọn này buộc các nhóm xung đột phải được tự động giải quyết rõ ràng bằng cách ưu tiên phiên bản của chúng tôi. Những thay đổi từ cây khác không xung đột với phía chúng tôi được phản ánh vào kết quả hợp nhất. Đối với tệp nhị phân, toàn bộ nội dung được lấy từ phía chúng tôi.

của họ:

Điều này đối lập với "của chúng ta".


9
ours- theirs!! Chỉ cần nói nó và bạn hiểu những gì lệnh làm! Tôi yêu Git! : D
Haywire

14
lưu ý: nếu bạn đã sử dụng git merge branch, bạn sẽ cần git merge --aborttrước khi có thể thực hiện việc này.
John Dvorak

1
Không hiệu quả với tôi. Nó vẫn hủy hợp nhất. error: The following untracked working tree files would be overwritten by merge:Tôi thậm chí không biết tại sao những tệp này lại nằm trong nhánh này ngay từ đầu, nhưng chúng nên được ghi đè, và git từ chối.
mcv

2
Nếu chúng chưa được theo dõi, trước tiên bạn cần loại bỏ (hoặc git add) chúng. Đọc một chút về git clean, nó có thể giúp bạn điều đó.
Renato Zannon

Sau khi chạy git merge ours, nếu có một số tệp xung đột, sẽ có bất kỳ bản ghi nào? và tôi có thể theo dõi git merge ours?
zx1986

19

Tôi sử dụng cái này,

git fetch --prune
git reset --hard origin/master

2
Giải pháp này đã giúp tôi khắc phục các xung đột không hợp nhất khi tất cả những gì tôi muốn là ghi đè với nhánh chính. i sử dụng git reset --hard thạc sĩ (từ địa phương)
Juan Mendez
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.