2012-03-10 11 views
13

Có móc git nào tôi có thể sử dụng cho các xung đột hợp nhất không? Sau khi thất bại git merge, thật tuyệt vời khi có thể viết tập lệnh mở tất cả các tệp có xung đột trong $EDITOR. Thật không may là móc post-merge không chạy nếu có xung đột và từ những gì tôi đã thấy trong trang người dùng githooks, không có móc thích hợp nào khác.Móc git cho các xung đột hợp nhất

Tôi tự hỏi nếu tôi đã bỏ lỡ một cái gì đó, hoặc nếu có lựa chọn thay thế khác ngắn của răng cưa 'git merge' vào một chức năng hoặc một cái gì đó như thế.

Cảm ơn, Chris

+0

Bạn có thể sử dụng công cụ tùy chỉnh mà chỉ là một trình soạn thảo chứ không phải là một công cụ ba cách đúng và chạy 'git mergetool' khi bạn nhận được xung đột. –

+0

Đề xuất tốt. Tôi đã không xem xét điều này bởi vì tôi thực sự không thích bất kỳ công cụ hợp nhất nào và đã tìm thấy sửa chữa xung đột của tôi trực tiếp trong trình chỉnh sửa tốt hơn. Tôi tìm thấy [this] (http://stackoverflow.com/questions/1817370/using-ediff-as-git-mergetool) như một giải pháp có thể và tôi nghĩ rằng tùy biến [mergetool] (http://schacon.github.com /git/git-mergetool.html) chắc chắn là con đường để đi. Câu hỏi là bây giờ, phải làm gì với câu hỏi của tôi? Tôi có nên nhấp vào "Trả lời câu hỏi của bạn" ở cuối trang hoặc không làm gì cả? – flooose

Trả lời

0

Theo đề nghị của Charles Bailey , cách tốt nhất để làm điều này là tùy biến bộ công cụ. Sử dụng this guide, tôi đã đưa ra phương pháp đơn giản này để có xung đột nhập mở trong trình soạn thảo của tôi:

[merge] 
    tool = emacs 
[mergetool "emacs"] 
    cmd = $editor \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\" 

Kể từ khi Charles Bailey không bao giờ trả lời như thế nào tôi nên cho anh ta tín dụng cho điều này, tôi hy vọng đây là một cách thích hợp để cuối cùng gần câu hỏi này.

0

Tôi nghĩ rằng có lẽ hai cách, như đã đề cập bạn bởi floose bạn có thể chỉnh sửa mergetool của bạn hoặc có lẽ bạn có thể tạo một bí danh sử dụng:

for i in $(git ls-files -u | cut -f 2 | sort -u); do $EDITOR $i; done