Làm cách nào để giải quyết xung đột chọn cherry bằng các thay đổi của chúng?


110

Của tôi git cherry-pick FOOtạo ra một cuộc xung đột.

Tôi có thể xem qua các tệp xung đột và xóa các dòng giữa <<<<<<<=======và chính các điểm đánh dấu xung đột, nhưng tôi hy vọng có một cách dễ dàng hơn.

Tôi nghĩ rằng svntương đương là lựa chọn theirs-conflictđể giải quyết.

Làm thế nào để làm điều này trong git?

Tôi không muốn git checkout --theirs <file>điều đó dường như tạo ra kết quả giống như git checkout foo <file>thay vì chỉ được git diff FOO~..FOO <file>áp dụng.

Câu trả lời:


196

Trước tiên, bạn nên hoàn tác việc chọn anh đào của mình, hãy thử chạy điều này

git cherry-pick --abort

Thứ hai, cố gắng chọn anh đào, nhưng trong thời gian này bạn nhận được những thay đổi của họ không phải của bạn, vì vậy hãy làm như sau:

git cherry-pick --strategy=recursive -X theirs {Imported_Commit}

6
Một chút thêm thông tin về những gì các công tắc đang làm hiện có sẵn tại stackoverflow.com/questions/2268172/...
antak

27
Tôi cố gắng này chính xác: git cherry-pick --strategy=recursive -X theirs 1b92440và tôi vẫn nhắc nhở cho một cuộc xung đột chưa được giải quyết: Unmerged paths: deleted by them: (file path). Bất kỳ ý tưởng?
pilau

Một cách dễ hiểu hơn để thiết lập lại sau một thất bại anh đào-chọn / cài đặt là sử dụnggit reset --merge
Pylinux

10
git cherry-pick --abort- đây là cách được khuyến nghị để hoàn tác thao tác hái anh đào.
tommyk

Tôi không có -Xtùy chọn trong git cherry-pick. git 1.7.2.3.
Frank
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.