Để theo dõi câu trả lời của Charles Bailey, đây là thiết lập git của tôi sử dụng p4merge (công cụ hợp nhất 3 đường đa nền tảng miễn phí); đã thử nghiệm trên cài đặt msys Git (Windows):
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
hoặc, từ trình bao windows cmd.exe, dòng thứ hai trở thành:
git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
Những thay đổi (liên quan đến Charles Bailey):
- được thêm vào cấu hình git toàn cầu, nghĩa là hợp lệ cho tất cả các dự án git không chỉ là dự án hiện tại
- giá trị cấu hình công cụ tùy chỉnh nằm trong "mergetool. [tool] .cmd", không phải "merge. [tool] .cmd" (ngớ ngẩn với tôi, đã dành một giờ khắc phục sự cố tại sao git cứ phàn nàn về công cụ không tồn tại)
- đã thêm dấu ngoặc kép cho tất cả các tên tệp để các tệp có khoảng trắng vẫn có thể được tìm thấy bằng công cụ hợp nhất (Tôi đã thử nghiệm điều này trong msys Git từ Powershell)
- lưu ý rằng theo mặc định, Perforce sẽ thêm thư mục cài đặt của nó vào PATH, do đó không cần chỉ định đường dẫn đầy đủ đến p4merge trong lệnh
Tải xuống: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
EDIT (tháng 2 năm 2014)
Như @Gregory Pakosz đã chỉ ra , msys git mới nhất hiện nay "thực sự" hỗ trợ p4merge (được thử nghiệm trên 1.8.5.2.msysgit.0 ).
Bạn có thể hiển thị danh sách các công cụ được hỗ trợ bằng cách chạy:
git mergetool --tool-help
Bạn sẽ thấy p4merge trong danh sách có sẵn hoặc hợp lệ . Nếu không, xin vui lòng cập nhật git của bạn.
Nếu p4merge được liệt kê là có sẵn , nó nằm trong PATH của bạn và bạn chỉ phải đặt merge.tool :
git config --global merge.tool p4merge
Nếu nó được liệt kê như là hợp lệ , bạn phải xác định mergetool.p4merge.path ngoài merge.tool :
git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe
- Trên đây là đường dẫn ví dụ khi p4merge được cài đặt cho người dùng hiện tại, không phải toàn hệ thống (không cần quyền quản trị hoặc độ cao UAC)
- Mặc dù
~
nên mở rộng sang thư mục chính của người dùng hiện tại (vì vậy theo lý thuyết thì đường dẫn phải như vậy ~/AppData/Local/Perforce/p4merge.exe
), nhưng điều này không hiệu quả với tôi
- Thậm chí tốt hơn là tận dụng biến môi trường (ví dụ
$LOCALAPPDATA/Perforce/p4merge.exe
), git dường như không mở rộng biến môi trường cho đường dẫn (nếu bạn biết cách làm việc này, vui lòng cho tôi biết hoặc cập nhật câu trả lời này)