I have a site that has a /sites/default/files/
directory where user content is typically kept. Figuring that I don't need to be tracking this stuff, I added /sites/default/files/ to my .gitignore file.
Then I discovered that I also wanted to keep some mostly-permanent uploads in that directory as well. Now it makes more sense to track everything in /sites/default/files/ and exclude undesirable subdirectories, instead of doing it the other way around.
The problem is that Git won't stop ignoring that directory. I have removed the lines from .gitignore that specify this directory and it won't track it. I have the option to use git add /sites/default/files/ -f
to force git to track the directory, but I've done that before and it seems messy.
If .gitignore no longer specifies that directory as ignored, why would I have to force Git to start tracking those files?
gitignore only ignores files that are not part of the repository yet. If you already git add ed some files, their changes will still be tracked. To remove those files from your repository (but not from your file system) use git rm --cached on them.
You know how to do it already. Yes, git add -f
is the way.
If you ask why... this is because git set a assume-unchanged
bit internally. This bit make git think the file is not modified, so git add
won't add it.
If you want to mess with the implementation details, you can use git update-index --no-assume-unchanged <file>
command.
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