使用视觉差异工具
默认答案(在命令行)
此处最重要的答案正确显示了如何查看中的缓存/暂存的更改Index:
$ git diff --cached
或者$ git diff --staged是别名。
而是启动Visual Diff工具
默认答案将在git bash上吐出diff更改(即在命令行或控制台上)。对于那些希望以可视化方式显示暂存文件差异的用户,git中提供了一个脚本,该脚本为每个查看的文件启动可视化diff工具,而不是在命令行上显示它们,称为difftool:
$ git difftool --staged
这样做与相同git diff --staged,不同之处在于,只要运行diff工具(即每次使用diff处理文件),都会启动默认的视觉diff工具(在我的环境中,这是kdiff3)。
工具启动后,git diff脚本将暂停,直到您的可视化diff工具关闭。因此,您需要关闭每个文件才能看到下一个文件。
您可以随时difftool代替diffgit命令使用
对于您所有的视觉差异需求,git difftool它将代替任何git diff命令(包括所有选项)使用。
例如,要启动可视化差异工具而无需询问是否对每个文件执行此操作,请添加-y选项(我想通常您会希望这样做!):
$ git difftool -y --staged
在这种情况下,它将在视觉差异工具中一次拉出每个文件,在工具关闭后调出下一个文件。
或查看在中暂存的特定文件的差异Index:
$ git difftool -y --staged <<relative path/filename>>
有关所有选项,请参见手册页:
$ git difftool --help
设置Visual Git工具
要使用默认设置以外的可视git工具,请使用以下-t <tool>选项:
$ git difftool -t <tool> <<other args>>
或者,请参见difftool手册页,了解如何将git配置为使用其他默认可视化diff工具。
.gitconfigvscode作为差异/合并工具的示例条目
设置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
git status -v也可以。请在下面