From: Dirk Süsserott Date: Sat, 11 Jun 2011 14:54:55 GMT Subject: Best way to check for a "dirty" working tree? Message-ID: <4DF381BF.3050301@dirk.my1.cc> Hi list, I have a script which moves data from somewhere to my local repo and then checks it in, like so: ----------- mv /tmp/foo.bar . git commit -am "Updated foo.bar at $timestamp" ----------- However, before overwriting "foo.bar" in my working directory, I'd like to check whether my working tree is dirty (at least "foo.bar"). I tried A) if ! git diff-index --quiet HEAD -- foo.bar; then dirty=1 fi and B) if ! git diff --quiet -- foo.bar; then dirty=1 fi Both A) and B) work. But which one is better/faster/more reliable? Or is there a better solution? For my purpose, I cannot see a difference between diff and diff-index, except the syntax. Cheers, Dirk