DEV Community

Srebalaji Thirumalai
Srebalaji Thirumalai

Posted on • Originally published at gitbetter.substack.com on

How to customize git diff to spot changes faster

This post was originally posted in the newsletter GitBetter. If you are interested in leveling up your game in Git, you can subscribe to it.



git diff is one of the most useful features in git. Customizing diff will make your life easier.

Diff-so-fancy is the git tool that helps you to make good looking diffs. This tool helps you to spot the differences without any human error.

You can view the package in this repo

Let’s see that in-depth

Installation

Diff-so-fancy is available in brew, npm and also as a package for Debian Linux

brew install diff-so-fancy

npm i diff-so-fancy --global
Enter fullscreen mode Exit fullscreen mode

Usage

I will explain a few ways of using diff-so-fancy. You can choose your way of doing it.

Be default, diff-so-fancy will never change any default diff options. You should explicitly mention it.

git diff | diff-so-fancy
Enter fullscreen mode Exit fullscreen mode

The above command will use diff-so-fancy to display the difference.

If you want to make diff-so-fancy as default diff viewer, you can use

git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"
Enter fullscreen mode Exit fullscreen mode

Now you can just use git diff to use diff-so-fancy.

Now for some reason, you may wish to use the default git diff to view the change even after setting diff-so-fancy.

In that case, you can use

git --no-pager diff
Enter fullscreen mode Exit fullscreen mode

The above command will bypass diff-so-fancy. So the default diff view will be used.

Remove diff-so-fancy from the default option

To remove diff-so-fancy from the default git diff, you can set the pager as

git config --global core.pager 'less'
Enter fullscreen mode Exit fullscreen mode

Git uses a pager to display the content. Pager is used in commands like git-diff, git-log. By default, a pager called less is used by Git.

So in the above command, I have set the default pager to Git.

diff-so-fancy comes with few options. You can see that in the repo.

Thank you for reading :)

This post was originally posted in the newsletter GitBetter. If you are interested in leveling up your game in Git, you can subscribe to it.

Top comments (0)