Commit Composer incorrectly indicates working directory has changed on fetch
User reported that they are seeing the warning message that the working directory has changed after a fetch even when nothing has changed.
Reported here.
I can't reproduce this, so I will need more info from anyone who can:
-Workflows or automatic actions that run on fetch (via git config) -GitLens and GitLens (Git) output logs -Info about environment (vscode version, git version, etc.)
@axosoft-ramint I'm having the same issue, though mine isn't triggered by a fetch.
https://github.com/user-attachments/assets/9ff9f59a-4a34-4965-b801-6bec36b5dfa1
Reloading the window/extension host then caused the same behaviour, but with the "index has changed" error instead.
It seems to have calmed down after a few more reloads (though the working directory warning appeared again when I opened my terminal to get the below values).
Versions
VS Code version: 1.105.0
GitLens version: v17.6.2
Git version: 2.39.5 (Apple Git-154)
GitLens (git) log
2025-11-07 12:06:18.797 [info] [2025-11-07 12:06:18.793] [ 9ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.797 [info]
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/
2025-11-07 12:06:18.800 [info] [2025-11-07 12:06:18.800] [ 6ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.800 [info]
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/
2025-11-07 12:06:18.815 [info] [2025-11-07 12:06:18.815] [ 15ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.815 [info]
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/
2025-11-07 12:06:18.825 [info] [2025-11-07 12:06:18.825] [ 9ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.825 [info]
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/
2025-11-07 12:06:18.826 [info] [2025-11-07 12:06:18.826] [ 1ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.826 [info]
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/
2025-11-07 12:06:18.842 [info] [2025-11-07 12:06:18.842] [ 15ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.842 [info]
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/
2025-11-07 12:06:18.859 [info] [2025-11-07 12:06:18.859] [ 16ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.859 [info]
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/
2025-11-07 12:06:18.870 [info] [2025-11-07 12:06:18.870] [ 11ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.870 [info]
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/
2025-11-07 12:06:18.873 [info] [2025-11-07 12:06:18.873] [ 2ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.873 [info]
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/
2025-11-07 12:06:18.877 [info] [2025-11-07 12:06:18.877] [ 3ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.877 [info]
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/
2025-11-07 12:06:18.883 [info] [2025-11-07 12:06:18.883] [ 6ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.883 [info]
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/
2025-11-07 12:06:18.909 [info] [2025-11-07 12:06:18.909] [ 25ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.909 [info]
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/
2025-11-07 12:06:18.921 [info] [2025-11-07 12:06:18.921] [ 11ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.921 [info]
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/
2025-11-07 12:06:18.949 [info] [2025-11-07 12:06:18.949] [ 27ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.949 [info]
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/
2025-11-07 12:07:52.128 [info] [2025-11-07 12:07:52.128] [ 105ms] [/path/to/project] git log --format=%x1E%H%x1D%aN%x1D%aE%x1D%at%x1D%cN%x1D%cE%x1D%ct%x1D%P%x1D%D%x1D%B%x1D --numstat --summary -M --use-mailmap -m --no-min-parents -n1 a4edafde8b603d7f6313be285fe17345565d99da -- • FAILED
2025-11-07 12:07:52.128 [info]
Error: fatal: bad object a4edafde8b603d7f6313be285fe17345565d99da
GitLens log
2025-11-07 12:07:48.816 [info] [2025-11-07 12:07:48.311] Warning(/usr/bin/git -c core.quotepath=false -c color.ui=false rev-parse --verify --end-of-options 2b2d6d7^{commit}): fatal: Needed a single revision
[2025-11-07 12:07:48.359] Warning(/usr/bin/git -c core.quotepath=false -c color.ui=false rev-parse --verify --end-of-options 34d6932^{commit}): fatal: Needed a single revision
[2025-11-07 12:07:48.381] Warning(/usr/bin/git -c core.quotepath=false -c color.ui=false rev-parse --verify --end-of-options 90a22b6^{commit}): fatal: Needed a single revision
[2025-11-07 12:07:48.395] Warning(/usr/bin/git -c core.quotepath=false -c color.ui=false rev-parse --verify --end-of-options 25c3d368^{commit}): fatal: Needed a single revision
2025-11-07 12:07:52.343 [info] [2025-11-07 12:07:52.127] Warning(/usr/bin/git -c core.quotepath=false -c color.ui=false -c log.showSignature=false -c diff.renameLimit=0 log --format=%x1E%H%x1D%aN%x1D%aE%x1D%at%x1D%cN%x1D%cE%x1D%ct%x1D%P%x1D%D%x1D%B%x1D --numstat --summary -M --use-mailmap -m --no-min-parents -n1 a4edafde8b603d7f6313be285fe17345565d99da --): fatal: bad object a4edafde8b603d7f6313be285fe17345565d99da
[2025-11-07 12:07:52.128] [GIT ] [/path/to/project] git log --format=%x1E%H%x1D%aN%x1D%aE%x1D%at%x1D%cN%x1D%cE%x1D%ct%x1D%P%x1D%D%x1D%B%x1D --numstat --summary -M --use-mailmap -m --no-min-parents -n1 a4edafde8b603d7f6313be285fe17345565d99da -- • bad object a4edafde8b603d7f6313be285fe17345565d99da [105ms]
[2025-11-07 12:07:52.128] Git.exec
Error: fatal: bad object a4edafde8b603d7f6313be285fe17345565d99da
2025-11-07 12:08:00.703 [info] [2025-11-07 12:08:00.198] [GIT *7848ms] [/path/to/project] git log --stdin --format=%x1E%H%x1D --shortstat -n501 --date-order --all -- [*7848ms] (slow)
Hope this helps 😄
This issue needs more information and has not had recent activity. Please provide the missing information or it will be closed in 7 days. Thanks!
I noticed the “working directory has changed” warning appeared only when I had untracked files in my working directory. As soon as I ran git add . to stage them, the error disappeared, and the Commit Composer behaved normally.
Hope this helps — if you’re seeing this bug, try checking for untracked files and staging them before using the Commit Composer.