2013-01-21 37 views
5

Khi bạn có xung đột nhập trong git, chúng xuất hiện trong các tập tin như thế này:Làm thế nào để buộc một git merge xung đột

<<<< 
    old 
    old 
==== 
    new 
    new 
>>>> 

Bây giờ, tôi có một số thay đổi trên origin/master Tôi sẽ sáp nhập vào địa phương của tôi master chi nhánh. Nếu tôi chỉ kết hợp chúng bình thường, các dòng mới sẽ chỉ xuất hiện độc đáo vào tệp, vì không có xung đột.

Tuy nhiên, tôi muốn các thay đổi xuất hiện như những xung đột hợp nhất ở trên, vì vậy tôi có thể nhìn thấy cả hai đường cũ và mới nơi xung đột được bao quanh bởi <<<<>>>>, xem xét mọi thay đổi theo cách thủ công và xóa nội dung sẽ biến mất.

Làm cách nào để "kích động" một cuộc xung đột như vậy?

Cách giải quyết đang thực hiện git diff -U999999 original.txt > review.txt, nhưng sau đó bạn phải xóa nhiều ký tự -+ ở đầu mỗi dòng khi xem lại tệp.

+0

đó sẽ không phải là phương pháp hay cho một dự án có nhiều tệp. – uday

+0

Tại sao không phải 'git commit –' khi bạn cam kết, và chỉ xem lại sự khác biệt? – AD7six

Trả lời

0

trước khi bạn cam kết, bạn chỉ có thể thực hiện git diff path/to/file để xem điều gì đã thay đổi.

Bạn có thể dễ dàng thiết lập công cụ đồ họa để sử dụng khi thực hiện giải pháp khác hoặc xung đột - xem http://adventuresincoding.com/2010/04/how-to-setup-git-to-use-diffmerge để biết ví dụ.

Tôi sử dụng DiffMerge và khi thực hiện một sự khác biệt, điều này cho phép bạn xóa từng thay đổi của mình, điều này nghe giống như hành vi bạn muốn.

Các vấn đề liên quan