使用视觉差异工具
默认答案(在命令行)
此处最重要的答案正确显示了如何查看中的缓存/暂存的更改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
代替diff
git命令使用
对于您所有的视觉差异需求,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工具。
.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
git status -v
也可以。请在下面