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 --

Written by Jamie Tanna's profile image Jamie Tanna on , and last updated on .

Content for this article is shared under the terms of the Creative Commons Attribution Non Commercial Share Alike 4.0 International, and code is shared under the Apache License 2.0.

#blogumentation #command-line #git.

This blog post is 100% human-written, and has nothing derived from LLMs (be it code, editorial support or prose).

Also on:

This post was filed under articles.

Interactions with this post

Interactions with this post

Below you can find the interactions that this page has had using WebMention.

Have you written a response to this post? Let me know the URL:

Do you not have a website set up with WebMention capabilities? You can use Comment Parade.