使用视觉差异工具
默认答案(在命令行中)
此处的最佳答案正确显示了如何查看Index 中的缓存/暂存更改:
$ git diff --cached
或$ git diff --staged,这是一个别名。
改为启动 Visual Diff 工具
默认答案将在 git bash 中(即在命令行或控制台中)吐出差异更改。对于那些喜欢暂存文件差异的可视化表示的人,git 中有一个可用的脚本,它为每个查看的文件启动一个可视化差异工具,而不是在命令行上显示它们,称为difftool:
$ git difftool --staged
这将与git diff --staged 执行相同的操作,除了任何时候运行差异工具(即每次通过差异处理文件时),它将启动默认的可视差异工具(在我的环境中,这是 kdiff3)。
工具启动后,git diff 脚本将暂停,直到您的可视化 diff 工具关闭。因此,您需要关闭每个文件才能查看下一个文件。
你总是可以在 git 命令中使用 difftool 代替 diff
对于您所有的视觉差异需求,git difftool 将代替任何 git diff 命令,包括所有选项。
例如,要在不询问是否为每个文件执行此操作的情况下启动可视差异工具,请添加 -y 选项(我认为通常您会想要这个!):
$ git difftool -y --staged
在这种情况下,它会在视觉差异工具中拉出每个文件,一次一个,在工具关闭后调出下一个。
或者查看Index中暂存的特定文件的差异:
$ git difftool -y --staged <<relative path/filename>>
有关所有选项,请参见手册页:
$ git difftool --help
设置可视化 Git 工具
要使用默认以外的可视化 git 工具,请使用 -t <tool> 选项:
$ git difftool -t <tool> <<other args>>
或者,请参阅 difftool 手册页,了解如何配置 git 以使用不同的默认可视 diff 工具。
示例.gitconfig vscode 作为差异/合并工具的条目
设置 difftool 的一部分涉及更改 .gitconfig 文件,或者通过 git 命令在后台更改它,或者直接编辑它。
您可以在您的主目录中找到您的.gitconfig,例如在 Unix 中为 ~,在 Windows 中通常为 c:\users\<username>。
或者,您可以在默认 Git 编辑器中使用 git config -e --global 打开用户 .gitconfig。
以下是我的全局用户 .gitconfig 中的示例条目,用于 VS Code 作为差异工具和合并工具:
[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