Làm lại chỉ hợp nhất một tệp


112

Tôi đang ở giữa một quá trình hợp nhất lớn và tôi đã từng git mergetoolgiải quyết tất cả các xung đột, nhưng tôi vẫn chưa cam kết, vì tôi muốn đảm bảo việc hợp nhất diễn ra ổn trước.

Hóa ra là tôi đã mắc lỗi khi giải quyết xung đột trong một tệp và tôi muốn thực hiện lại giải quyết xung đột với git mergetooltrên tệp đó. Vì đây là một hợp nhất lớn, tôi muốn tránh thực hiện lại hợp nhất trên tất cả các tệp khác, vì tôi hiểu rằng tôi sẽ phải làm với git merge --abort.

Tôi biết tôi chỉ có thể chỉnh sửa tệp theo cách thủ công, nhưng điều này sẽ khá tẻ nhạt và sẽ dễ dàng hơn nhiều nếu chỉ thực hiện lại git mergetoolthao tác. Điều này có khả thi không?


Câu trả lời:


181

Có vẻ như tôi đã nhìn nhầm chỗ. Giải pháp hóa ra khá đơn giản.

git checkout -m <file>

Điều này trả lại tệp về trạng thái xung đột của nó. Sau đó tôi có thể chạy git mergetoolđể thực hiện lại việc hợp nhất.


2
Loại này làm việc cho tôi. Chỉ mục kết thúc ở trạng thái hợp nhất, nhưng mergetool không nghĩ rằng có bất kỳ hợp nhất nào còn tồn đọng. Tôi vừa thực hiện hợp nhất bằng cách sử dụng vi, nhưng dù sao thì nó cũng rất lạ.
Chris Cleeland,

1
cảm ơn bạn! đây chính xác là những gì cần thiết. Nhân tiện, kết hợp thủ công với vi luôn là một niềm vui và hoàn toàn hài lòng. chuyển sang trái hoặc chuyển sang phải chưa bao giờ khiến tôi tự tin rằng quá trình hợp nhất đang diễn ra như mong đợi
asgs 29/1018

1
Có một số chi tiết bổ sung hữu ích (với cùng một câu trả lời) trong câu trả lời của câu hỏi trùng lặp này .
Joshua Goldberg

-4

Bạn luôn có thể chỉnh sửa các tệp theo cách thủ công.

Nếu bạn đang sử dụng git merge --no-commit, thì bạn chỉ cần có một cam kết đã chuẩn bị sẵn (sau khi hợp nhất tự động và bán tự động).

Bạn vẫn có thể yên tâm chỉnh sửa các tập tin và chỉ cam kết khi hoàn toàn hài lòng.

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.