In the previous post, I showed you how to use Visual Studio to compare 2 files. I also use Visual Studio Code from time to time. And, as every great IDE, Visual Studio Code also has a great diff tool. As with Visual Studio, you can use it to compare 2 versions of the same file if you use a source control. But you can also compare 2 files from your file system.
There are multiple ways to use the Visual Studio Code diff tool that are covered in this post.
#Comparing files using the User Interface
Open the 2 files in Visual Studio Code
Right-click on one file and click "Select for compare"

Right-click on the other file and click "Compare file file1 with file2"

You should see the result:

#Comparing files using the command line
Using Visual Studio Code
Shell
code --diff file1.cs file2.cs
Or, using the full path if code is not in the PATH:
Shell
"%LOCALAPPDATA%\Programs\Microsoft VS Code\code.exe" --diff file1.cs file2.cs
Using Visual Studio Code Insiders
Shell
"%LOCALAPPDATA%\Programs\Microsoft VS Code Insiders\Code - Insiders.exe" --diff file1.cs file2.cs

#Using Visual Studio Code as a git difftool
git difftool is a Git command that allows you to compare and edit files between revisions using common diff tools. You can use any editor that supports diff such as VS Code. Open a command prompt and use the following commands:
From CMD (Windows)
Shell
git config --global diff.tool vscode
git config --global difftool.vscode.cmd "code --wait --diff \"$LOCAL\" \"$REMOTE\""
From PowerShell (Windows or Linux)
PowerShell
git config --global diff.tool vscode
git config --global difftool.vscode.cmd "code --wait --diff ""`$LOCAL"" ""`$REMOTE"""
From Bash (Linux)
PowerShell
git config --global diff.tool vscode
git config --global difftool.vscode.cmd 'code --wait --diff "$LOCAL" "$REMOTE"'
Manually, open ~/.gitconfig or %USERPROFILE%\.gitconfig in a text editor and add the following content:
INI
[diff]
tool = vscode
[difftool "vscode"]
cmd = code --wait --diff \"$LOCAL\" \"$REMOTE\"
You can validate the configuration by executing git config --global --list.
By the way, you can also use Visual Studio Code as your git editor:
Shell
git config --global core.editor "code --wait"
Do you have a question or a suggestion about this post? Contact me!