使用视觉差异工具
默认答案(在命令行)
此处的最佳答案正确显示了如何查看缓存/暂存的更改Index
:
$ git diff --cached
或者$ git diff --staged
哪个是别名。
改为启动 Visual Diff 工具
默认答案将在 git bash (即在命令行或控制台中)吐出差异更改。对于那些喜欢暂存文件差异的可视化表示的人,git 中有一个可用的脚本,它为每个查看的文件启动一个可视化差异工具,而不是在命令行上显示它们,称为difftool
:
$ git difftool --staged
这将与 执行相同的操作git diff --staged
,除了在运行 diff 工具的任何时候(即每次 diff 处理文件时),它将启动默认的可视化 diff 工具(在我的环境中,这是kdiff3)。
工具启动后,git diff 脚本将暂停,直到您的可视化 diff 工具关闭。因此,您需要关闭每个文件才能查看下一个文件。
您可以随时使用difftool
代替diff
in git 命令
对于您所有的视觉差异需求,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 中或通常c:\users\<username>
在 Windows 中)。
或者,您可以.gitconfig
在默认的 Git 编辑器中使用git config -e --global
.
以下是我.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