Somehow, git got it in its head that I have an untracked file (A directory that has been in my repository for quite some time, ~17 months). At any rate, I can\'t seem to con
The . in the git add .
command refers to the "current directory". So, running git add .
will add all the files in the current directory and its subdirectories. You should ensure that you are in the correct directory before running git add
.
git add -A
is what you want. It will add everything.
I had the same error: no case changes, no .ignore problems and the directory did contain files that I definitely wanted to keep. Adding the dir, committing, git add -A
and other remedies did not have any effect.
I ended up deleting the directory with "git clean" and then checking out the files inside the dir again.
Here is what I did:
rex@sidekick> git status
# On branch master
# Your branch is ahead of 'origin/master' by 10 commits.
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# app/models/xSpecific/
nothing added to commit but untracked files present (use "git add" to track)
At this point I made a backup copy of the "xSpecific" directory just in case. Then I made a dry run with ´git clean´ (the -n option means "dry run" and -d makes clean remove directories):
rex@sidekick> git clean -n -d
Would remove app/models/xSpecific/
After double and triple checking, I went ahead with the cleaning (the -f flag means "force" and is needed to persuade Git that you are serious. Very good design, if you ask me):
rex@sidekick> git clean -d -f
Removing app/models/xSpecific/
rex@sidekick> git status
# On branch master
# Your branch is ahead of 'origin/master' by 10 commits.
#
# Changed but not updated:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: app/models/xSpecific/GetAddressesLog.java
# deleted: app/models/xSpecific/GetProductLog.java
#
no changes added to commit (use "git add" and/or "git commit -a")
So far, so good. The directory was no longer listed, but the files were of course gone too. I could have restored them from my backup, but this is what Git was made for:
rex@sidekick> git checkout -- app/models/xSpecific/GetAddressesLog.java
rex@sidekick> git checkout -- app/models/xSpecific/GetProductLog.java
rex@sidekick> git status
# On branch master
# Your branch is ahead of 'origin/master' by 10 commits.
#
nothing to commit (working directory clean)
Time to celebrate! Actually, it would probably have been easier to just clone off a new copy of the repository and use that instead, but by doing it the hard way I learned something new :).
This solved the problem for me rm .git/fs_cache
I had important untracked files and couldn't just run git clean -f
as some
answers suggest.
I try to add the directory and re-check the status.
➜ git add rosetta_tests/profile/tests/docking/
And it seems that adding a whole directory does not trigger a file recheck.
So I tried adding specifically one of the supposedly untracked files and it worked:
$ git status
On branch foo
Untracked files:
(use "git add <file>..." to include in what will be committed)
important.txt
foo/foo.java
foo/bar.java
foo/baz.java
foo/qux.java
nothing added to commit but untracked files present (use "git add" to track)
$ git add -- foo/foo.java
fatal: pathspec 'foo/foo.java' did not match any files
$ git status
On branch foo
Untracked files:
(use "git add <file>..." to include in what will be committed)
important.txt
nothing added to commit but untracked files present (use "git add" to track)
I solved this by running
git clean -f
This error popped up for me when git add
failed due to a file name being too long in a sub directory. (in my case, something in node_modules)
In this case, adding a .gitignore file with content of *
to the node_modules folder allowed git add to run to completion.
So, pay attention to the command output of git add .
(or -A or --all) and make sure it is not stopping prematurely due to an error. All of my "untracked" files and folders were added successfully once the proper .gitignore was applied and I was able to commit and push my changes.