Determining if there are uncommitted changes in Git
Sometimes you want to validate that your Git worktree is clean, for instance to make sure that there aren't any uncommitted formatting changes when building your project in CI/CD.
You could try and do it with a git status --porcelain
and check that there are no lines, but as per this StackOverflow answer, it's even simpler by running:
git diff-index --quiet HEAD --
This exits with a non-zero error code if there are changes found, so you can use it to fail the build.
Alternatively, you may want to see the unexpected changes, in which case you can run:
git diff-index --exit-code --patch HEAD --
# alternatively
git diff --exit-code HEAD --