Có cách nào để chỉ định git tự động giải quyết xung đột cho một gói tệp bằng cách lấy phiên bản từ xa cho từng tệp không? Ví dụ: để lấy phiên bản từ xa của từng tệp trong một thư mục nhất định?Làm cách nào để tự động giải quyết xung đột hợp nhất bằng cách chọn phiên bản từ xa trong Git?
Trả lời
git-merge dường như chỉ hỗ trợ chiến lược "của chúng tôi", trong đó kết quả hợp nhất là phiên bản cục bộ. Và điều đó chỉ dành cho cả cây.
Nếu bạn nhập trạng thái xung đột trong khi thực hiện hợp nhất, bạn có thể sử dụng git-checkout '--theirs
' với đường dẫn để truy xuất tệp từ chỉ mục.
Cuối cùng, bạn có thể git-reset để buộc các phần của cây thành một cam kết cụ thể.
Hiện cũng có http://www.seanius.net/blog/2011/02/git-merge-s-theirs/ người cơ bản khuyên bạn nên tạo merge -s ours
và sau đó áp dụng ngược lại các thay đổi.
10x David để biết mẹo. Dường như git-checkout thực hiện thủ thuật. Thật không may, các tùy chọn --ours | --theirs không được hỗ trợ bởi phiên bản git của tôi: (có vẻ như tôi phải thực hiện một số cập nhật ... –
Nếu không có tùy chọn --ours | --theirs để git-checkout, bạn có thể sử dụng 'git show: 2: full_path> file' cho --ours (stage # 2), và 'git show: 3: full_path> file' cho --theirs (stage # 3) Hoặc sử dụng 'git checkout- index --stage = 2 | 3 - file ... 'hệ thống ống nước –
Liên kết cuối cùng đã chết – Droidekas
Bạn có thể sử dụng recursive
chiến lược (s) với tùy chọn theirs
(-X). Đó là:
git merge -s recursive -X theirs source_branch
Xem SO trả lời ** [lệnh git để làm một chi nhánh như nhau] (http://stackoverflow.com/questions/4911794/git-command-for-making-one-branch-like -another/4912267 # 4912267) ** cho * tất cả * các cách có thể hiện tại để ** mô phỏng 'git merge -s their' **. – VonC