Let's say that you've got a large git project. This project might have lots and lots of files that need checking on every commit. But maybe, some of the automated checks only need to run on a subset of all the files. Maybe they should only run on the files that actually changed.
For these situations there's a lovely command;
git diff --name-status main | cat
This compares the current git state with the
main branch that you have
locally. You can also make a comparison with the main branch on Github as well
git diff --name-status origin/main | cat
You can chain this command using
xargs such that tools like
check only the specific files that changed.
git diff --name-status main | xargs flake8
If you're running your own blog, you could even use it to speed up
the build times. If you had a script,
render.py that reads files from stdin
to build and render render then you might build a faster build pipeline via;
git diff --name-status origin/main | grep md | xargs python render.py
In our experience, it makes for a nice addition to a Makefile.
Back to TILs.