diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 3239187..385ac83 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -1,3 +1,12 @@
+v1.14.1
+=======
+
+* fix #109: when detecting a dirty git workdir
+            don't consider untracked file
+            (this was a regression due to #86 in v1.13.1)
+* consider the distance 0 when the git node is unknown
+  (happens when you haven't commited anything)
+
 v1.14.0
 =======
 
diff --git a/setuptools_scm/git.py b/setuptools_scm/git.py
index 10280e5..aa326f3 100644
--- a/setuptools_scm/git.py
+++ b/setuptools_scm/git.py
@@ -30,7 +30,7 @@ class GitWorkdir(object):
         return cls(real_wd)
 
     def is_dirty(self):
-        out, _, _ = self.do_ex("git status --porcelain")
+        out, _, _ = self.do_ex("git status --porcelain --untracked-files=no")
         return bool(out)
 
     def node(self):
@@ -50,7 +50,7 @@ def parse(root, describe_command=DEFAULT_DESCRIBE):
     dirty = wd.is_dirty()
 
     if rev_node is None:
-        return meta('0.0', dirty=dirty)
+        return meta('0.0', distance=0, dirty=dirty)
 
     out, err, ret = do_ex(describe_command, root)
     if ret:

untracked files in git are creating dirty state
In Mercurial and in Git prior to the fix for #86 released with setuptools_scm 1.13.1, untracked files would not cause a `dirty` state, but since 1.13.1, they do.

```
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)

	.tox/

nothing added to commit but untracked files present (use "git add" to track)
$ python -m pip install setuptools_scm==1.13.0
Collecting setuptools_scm==1.13.0
  Downloading setuptools_scm-1.13.0-py2.py3-none-any.whl
Installing collected packages: setuptools-scm
Successfully installed setuptools-scm-1.13.0
$ python setup.py --quiet sdist
$ ls dist
rwt-2.13.tar.gz
$ python -m pip uninstall -y setuptools_scm
Uninstalling setuptools-scm-1.13.0:
  Successfully uninstalled setuptools-scm-1.13.0
$ python setup.py --quiet sdist            
$ ls dist
rwt-2.13.tar.gz					rwt-2.14.dev0+ngd08ab93.d20161012.tar.gz
```

My opinion and the expectation of environments based on past behavior is that untracked files shouldn't create a dirty state. Only modified files or perhaps staged files should cause the project to detect as dirty. The `git describe` output seems to be the same before and after removing the untracked files.

```
$ git describe --tags --long   
2.13-0-gd08ab93
$ rm -R .tox
$ git describe --tags --long
2.13-0-gd08ab93
```
diff --git a/testing/test_git.py b/testing/test_git.py
index c3ae002..7179a57 100644
--- a/testing/test_git.py
+++ b/testing/test_git.py
@@ -14,7 +14,7 @@ def wd(wd):
 
 
 def test_version_from_git(wd):
-    assert wd.version == '0.0'
+    assert wd.version == '0.1.dev0'
 
     wd.commit_testfile()
     assert wd.version.startswith('0.1.dev1+')
@@ -34,8 +34,12 @@ def test_version_from_git(wd):
 
 
 @pytest.mark.issue(108)
+@pytest.mark.issue(109)
 def test_git_worktree(wd):
     wd.write('test.txt', 'test2')
+    # untracked files dont change the state
+    assert wd.version == '0.1.dev0'
+    wd('git add test.txt')
     assert wd.version.startswith('0.1.dev0+d')
 
 

pip install -e .[dev]
parse_log_pytest
pytest
pytest
python setup.py egg_info
3.9
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
exceptiongroup @ file:///croot/exceptiongroup_1706031385326/work
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
packaging @ file:///croot/packaging_1734472117206/work
pluggy @ file:///croot/pluggy_1733169602837/work
pytest @ file:///croot/pytest_1738938843180/work
-e git+https://github.com/pypa/setuptools_scm.git@79610468966055b8a2ca0e76b9b2fa59a241740e#egg=setuptools_scm
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work

name: setuptools_scm
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - exceptiongroup=1.2.0=py39h06a4308_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - packaging=24.2=py39h06a4308_0
  - pip=25.0=py39h06a4308_0
  - pluggy=1.5.0=py39h06a4308_0
  - pytest=8.3.4=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py39h06a4308_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
prefix: /opt/conda/envs/setuptools_scm

testing/test_git.py::test_version_from_git testing/test_git.py::test_git_worktree
testing/test_git.py::test_git_dirty_notag testing/test_git.py::test_find_files_stop_at_root_git testing/test_git.py::test_alphanumeric_tags_match
CHANGELOG.rst setuptools_scm/git.py
CHANGELOG.rst setuptools_scm/git.py