Giả sử rằng tôi nhận được một cuộc xung đột nhập vào foo/bar.txt
khi chạy này:Cách tự động giải quyết xung đột Git bằng cách lấy phiên bản trong nhánh hiện tại?
$ git checkout A
$ git merge B
tôi muốn tự động giải quyết mâu thuẫn bằng cách lấy foo/bar.txt
từ chi nhánh A. (Tôi biết những gì tôi đang làm, và tôi . không cần này phiên bản tại chi nhánh B là sai, và tôi không quan tâm về việc mất những thay đổi trong cây làm việc trong trường hợp này) dường như tôi có thể làm điều đó bằng cách chạy các lệnh này:.
$ git reset foo/bar.txt
$ git checkout foo/bar.txt
is có một giải pháp đơn giản, đơn giản hơn?
Thật không may, các lệnh này thay đổi foo/bar.txt
ngay cả khi không có xung đột và tôi không muốn điều đó. Nếu không có xung đột, tôi muốn giữ foo/bar.txt
ở trạng thái bất kỳ git merge B
đã để lại.
Vì vậy, tôi cần một lệnh shell Unix, sẽ phát hiện nếu có xung đột trong foo/bar.txt
và nếu có, nó sẽ giải quyết xung đột bằng cách lấy phiên bản foo/bar.txt
từ nhánh hiện tại. Nó sẽ không làm bất cứ điều gì khác, tức là nó sẽ không sửa đổi các tập tin khác, nó sẽ không cam kết những thay đổi, và nó sẽ không thay đổi foo/bar.txt
nếu không có xung đột trong tập tin đó.
Từ xa: http://stackoverflow.com/questions/528659/git-automatic-conflict-resolution –