git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Best way to check for a "dirty" working tree?

From
DSDirk Süsserott <newsletter@dirk.my1.cc>
Date
Jun 11, 2011, 14:54 UTC
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
Next: Ramkumar Ramachandra
Message 1 of 4 in “Best way to check for a "dirty" working tree?”
  1. Dirk SüsserottJun 11, 2011
  2. Ramkumar RamachandraJun 12, 2011
  3. Jonathan NiederJun 13, 2011
  4. Dirk SüsserottJun 14, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.