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 convince git that this is not an untracked file. Furthermore, I can't re-add the file(s) in question. Any idea how I can fix this?
Example:
➜ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # rosetta_tests/profile/tests/docking/ nothing added to commit but untracked files present (use "git add" to track)
I try to add the directory and re-check the status.
➜ git add rosetta_tests/profile/tests/docking/ ➜ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # rosetta_tests/profile/tests/docking/ nothing added to commit but untracked files present (use "git add" to track)
Just to be sure (from the root of my source tree)
➜ git add . ➜ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # rosetta_tests/profile/tests/docking/ nothing added to commit but untracked files present (use "git add" to track)
What is going on here? How can I convince git to fix itself?
EDIT
A few more details:
-The files are not in the .gitignore
-There are three tracked files in the folder in question, so it's not empty
-After even more digging, it seems something like this could arise from changing the case of a tracked folder. This, unfortunately, is not the case (pun!). The folder name has never changed case.
-Contents of the docking directory:
➜ ls -lA rosetta_tests/profile/tests/docking/. total 16 -rw-r--r-- 1 tim staff 2209 Jul 17 10:47 command -rw-r--r-- 1 tim staff 260 Jul 17 10:47 flags drwxr-xr-x 3 tim staff 102 Jul 17 10:47 input
In git, all files which are in the working directory but haven't been explicitly added (i.e. git add ) are marked as "untracked". This effectively means that they exist, but git is not keeping track of changes in them.
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 solved this by running
git clean -f
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With