I make an arbitrary change to a file within my git working directory.
git status
does not recognized that the file has changed.
git add /path/to/file
has no effect.
git add -f /path/to/file
has no effect.
git status /path/to/file
shows the file as in the 'changes to be committed' bucket.
I removed my .gitignore file, just to be sure. No change to any of the above behaviors.
I have done git reset --hard
, re-made my change. No change to any of the above behaviors.
What could be going on here?
Turns out I added
skip-worktree
on my file [1]and forgot. You can undo this with:
ls-files
with-v
revealed the status of the file in my case:The letters
git ls-files -v
will prefix with are and mean:To identify your issue
Is the file ignored by git?
If the file is listed, there is an ignore rule somewhere that is excluding it.[2] [3] Find it in one of these files:
Is the file flagged
assume-unchanged
If the file is prefixed with a lower case letter, it is flagged with
assume-unchanged
. Fix it with:Is the file flagged
skip-worktree
If the file is prefixed with
S
, it is flagged withskip-worktree
. Fix it with:Are you sure that your file is not excluded by some of the .gitignore files in parent directories?
After you did git add, did you do a commit so it's actually in the repo and can be compared to the (changed) working copy?