Tái tạo câu trả lời của tôi từ chủ đề này , cụ thể hơn để đặt ngoài việc so sánh như công cụ tìm khác biệt cho Git. Tất cả các chi tiết mà tôi đã chia sẻ đều hữu ích như nhau cho bất kỳ công cụ tìm khác biệt nào, vì vậy hãy chia sẻ nó ở đây:
Lệnh đầu tiên mà chúng ta chạy như sau:
git config --global diff.tool bc3
Lệnh trên tạo mục dưới đây .gitconfig
trong %userprofile%
thư mục tìm thấy :
[diff]
tool = bc3
Sau đó, bạn chạy lệnh bên dưới ( Chạy lệnh này là dự phòng trong trường hợp cụ thể này và chỉ được yêu cầu trong một số trường hợp chuyên biệt. Bạn sẽ biết điều đó trong một thời gian ngắn ):
git config --global difftool.bc3.path "c:/program files/beyond compare 3/bcomp.exe"
Lệnh trên tạo mục dưới đây trong .gitconfig
tệp:
[difftool "bc3"]
path = c:/program files/Beyond Compare 3/bcomp.exe
Điều cần biết ở đây là chìa khóa bc3
. Đây là một khóa nổi tiếng để git tương ứng với một phiên bản cụ thể của các công cụ so sánh nổi tiếng có sẵn trên thị trường ( bc3
tương ứng với phiên bản thứ 3 của công cụ Beyond So sánh). Nếu bạn muốn xem tất cả các khóa được xác định trước, chỉ cần chạy git difftool --tool-help
lệnh trên git bash. Nó trả về danh sách dưới đây:
vimdiff
vimdiff2
vimdiff3
araxis
bc
bc3
codecompare
deltawalker
diffmerge
diffuse
ecmerge
emerge
examdiff
gvimdiff
gvimdiff2
gvimdiff3
kdiff3
kompare
meld
opendiff
p4merge
tkdiff
winmerge
xxdiff
Bạn có thể sử dụng bất kỳ phím nào ở trên hoặc xác định khóa tùy chỉnh của riêng bạn. Nếu bạn muốn thiết lập một công cụ mới hoàn toàn (hoặc một phiên bản mới được phát hành của công cụ nổi tiếng) không ánh xạ tới bất kỳ khóa nào được liệt kê ở trên thì bạn có thể ánh xạ nó tới bất kỳ khóa nào được liệt kê ở trên hoặc sang một khóa mới khóa tùy chỉnh của riêng bạn.
Điều gì nếu bạn phải thiết lập một công cụ so sánh
- Hoàn toàn mới trên thị trường
HOẶC LÀ
- Một phiên bản mới của một công cụ nổi tiếng hiện có đã được phát hành mà không được ánh xạ tới bất kỳ khóa được xác định trước nào trong git ?
Giống như trong trường hợp của tôi, tôi đã cài đặt ngoài so sánh 4. ngoài so sánh là một công cụ nổi tiếng để git nhưng phiên bản 4 của nó không được ánh xạ tới bất kỳ khóa nào hiện có theo mặc định. Vì vậy, bạn có thể làm theo bất kỳ phương pháp nào dưới đây:
Tôi có thể ánh xạ ngoài công cụ so sánh 4 với khóa đã có sẵn bc3
tương ứng với phiên bản 3 so sánh. Tôi không có so sánh phiên bản 3 trên máy tính của mình nên tôi không quan tâm. Nếu tôi muốn, tôi có thể ánh xạ nó tới bất kỳ khóa nào được xác định trước trong danh sách trên, vd examdiff
.
Nếu bạn ánh xạ phiên bản công cụ đã biết đến phù hợp với khóa đã có / đã biết thì bạn không cần phải chạy lệnh thứ hai vì đường dẫn cài đặt của chúng đã được biết đến với git .
Ví dụ: nếu tôi đã cài đặt ngoài phiên bản so sánh 3 trên hộp của mình thì việc có cấu hình bên dưới trong .gitconfig
tệp của tôi là đủ để bắt đầu:
[diff]
tool = bc3
Nhưng nếu bạn muốn thay đổi công cụ liên kết mặc định thì cuối cùng bạn sẽ đề cập đến path
thuộc tính riêng biệt để git biết đường dẫn từ nơi exe của công cụ mới của bạn phải được khởi chạy. Thay vào đó, đây là mục mà cáo git sẽ khởi chạy ngoài so với 4. Lưu ý đường dẫn của exe:
[difftool "bc3"]
path = c:/program files/Beyond Compare 4/bcomp.exe
Cách tiếp cận rõ ràng nhất là xác định một khóa mới hoàn toàn cho công cụ so sánh mới hoặc phiên bản mới của một công cụ nổi tiếng. Giống như trong trường hợp của tôi, tôi đã xác định một khóa mới bc4
để dễ nhớ. Trong trường hợp như vậy, bạn phải chạy tất cả hai lệnh nhưng lệnh thứ hai của bạn sẽ không thiết lập đường dẫn thực thi công cụ mới của bạn. Thay vào đó, bạn phải đặt cmd
thuộc tính cho công cụ mới của mình như dưới đây:
git config --global diff.tool bc4
git config --global difftool.bc4.cmd "\"C:\\Program Files\\Beyond Compare 4\\bcomp.exe\" -s \"\$LOCAL\" -d \"\$REMOTE\""
Chạy các lệnh trên tạo các mục bên dưới trong .gitconfig
tệp của bạn :
[diff]
tool = bc4
[difftool "bc4"]
cmd = \"C:\\Program Files\\Beyond Compare 4\\bcomp.exe\" -s \"$LOCAL\" -d \"$REMOTE\"
Tôi thực sự khuyên bạn nên làm theo cách tiếp cận # 2 để tránh bất kỳ sự nhầm lẫn nào cho bản thân trong tương lai.