SỬ DỤNG CÔNG CỤ DIFF VISUAL
Câu trả lời mặc định (tại dòng lệnh)
Các câu trả lời hàng đầu ở đây hiển thị chính xác cách xem các thay đổi được lưu trong bộ nhớ cache / theo giai đoạn trong Index
:
$ git diff --cached
hoặc $ git diff --staged
đó là một bí danh.
Thay vào đó, khởi chạy Visual Diff Tool
Câu trả lời mặc định sẽ đưa ra các thay đổi khác nhau tại git bash (tức là trên dòng lệnh hoặc trong bảng điều khiển). Đối với những người thích biểu diễn trực quan về sự khác biệt của tập tin theo giai đoạn, có một tập lệnh có sẵn trong git sẽ khởi chạy một công cụ tìm khác biệt cho mỗi tệp được xem thay vì hiển thị chúng trên dòng lệnh, được gọi là difftool
:
$ git difftool --staged
Điều này sẽ làm tương tự như vậy git diff --staged
, ngoại trừ bất cứ khi nào công cụ diff được chạy (tức là mỗi khi tệp được xử lý bởi diff), nó sẽ khởi chạy công cụ tìm khác biệt trực quan mặc định (trong môi trường của tôi, đây là kdiff3 ).
Sau khi công cụ khởi chạy, tập lệnh git diff sẽ tạm dừng cho đến khi công cụ tìm khác biệt trực quan của bạn được đóng lại. Do đó, bạn sẽ cần phải đóng từng tệp để xem tệp tiếp theo.
Bạn luôn có thể sử dụng difftool
thay cho diff
lệnh git
Đối với tất cả các nhu cầu khác biệt về thị giác của bạn, git difftool
sẽ hoạt động thay cho bất kỳ git diff
lệnh nào , bao gồm tất cả các tùy chọn.
Ví dụ: để khởi chạy công cụ tìm khác biệt trực quan mà không cần hỏi có nên làm điều đó cho mỗi tệp hay không, hãy thêm -y
tùy chọn (tôi nghĩ thông thường bạn sẽ muốn điều này !!):
$ git difftool -y --staged
Trong trường hợp này, nó sẽ kéo từng tệp trong công cụ tìm khác biệt trực quan, từng tệp một, đưa ra tệp tiếp theo sau khi đóng công cụ.
Hoặc để xem khác biệt của một tệp cụ thể được dàn dựng trong Index
:
$ git difftool -y --staged <<relative path/filename>>
Đối với tất cả các tùy chọn, xem trang người đàn ông:
$ git difftool --help
Thiết lập công cụ Visual Git
Để sử dụng một công cụ git trực quan khác với mặc định, hãy sử dụng -t <tool>
tùy chọn:
$ git difftool -t <tool> <<other args>>
Hoặc, xem trang man Difftool để biết cách định cấu hình git để sử dụng một công cụ tìm khác biệt trực quan mặc định khác.
Các .gitconfig
mục ví dụ cho vscode là công cụ diff / merge
Một phần của việc thiết lập một Difftool liên quan đến việc thay đổi .gitconfig
tệp, thông qua các lệnh git thay đổi nó phía sau hậu trường hoặc chỉnh sửa trực tiếp.
Bạn có thể tìm thấy .gitconfig
trong thư mục nhà của bạn, chẳng hạn như ~
trong Unix hoặc thông thường c:\users\<username>
trên Windows).
Hoặc, bạn có thể mở người dùng .gitconfig
trong trình chỉnh sửa Git mặc định của mình với git config -e --global
.
Dưới đây là các mục ví dụ trong người dùng toàn cầu của tôi .gitconfig
cho VS Code là cả công cụ tìm khác biệt và công cụ hợp nhất:
[diff]
tool = vscode
guitool = vscode
[merge]
tool = vscode
guitool = vscode
[mergetool]
prompt = true
[difftool "vscode"]
cmd = code --wait --diff \"$LOCAL\" \"$REMOTE\"
path = c:/apps/vscode/code.exe
[mergetool "vscode"]
cmd = code --wait \"$MERGED\"
path = c:/apps/vscode/code.exe
git status -v
làm việc quá Xem câu trả lời của tôi dưới đây