.gitignore is not ignoring directories
GitVersion ControlGithubGitignoreGit Problem Overview
What I did:
I think there were some weird configurations from the github gui that caused this issue and prevented me from being able to easily use git from command line or even git-bash.
I ended up just uninstalling github and git then reinstalling just git for windows. I now have everything running off the command line(except ssh which I run from git-bash). Much easier and more reliable that the github gui.
Thanks to mu 無 for taking the time to try to figure this out. I didn't end up using his answer, but if I hadn't needed to do a reinstall of git it would have been what I needed to do.
I am using the github gui on my local machine. I just noticed that a commit I was about to make was going to update all of my recently update node modules. I set up my .gitignore to ignore the entire node_modules/
directory.
I'm not sure what to do about this. All the file types I included in .gitignore were ignored. It's just the directories that it seems to ignore.
Here is my .gitignore file:
#################
## Sublime Text
#################
*.sublime-project
*.sublime-workspace
#################
## Images
#################
*.jpg
*.jpeg
*.png
*.gif
*.psd
*.ai
#################
## Windows detritus
#################
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Mac crap
.DS_Store
#################
## Directories
#################
dev/
cms/core/config/
node_modules/
Git Solutions
Solution 1 - Git
Since the node_modules
directory is already tracked as part of the repository, the .gitignore
rule will not apply to it.
You need to untrack the directory from git using
git rm -r --cached node_modules
git commit -m "removing node_modules"
You can run the above 2 in git-bash
.
After this, the .gitignore
rule will ignore the directory away.
Note that this will remove the directory node_modules
from your other repos once you pull the changes in. Only the original repo where you made that commit will still have the node_modules
folder there.
Solution 2 - Git
Similar to Zach, I also used echo "node_modules/" >> .gitignore
.
The problem was it had created the file with encoding UCS-2 LE BOM
. Using notepad++ I changed the encoding to UTF-8 and voila - node_modules is now ignored.
Solution 3 - Git
If the files are already tracked the .gitignore
file will not override this. You will need to use git rm --cached <files>
See the full details on git rm
at
https://www.kernel.org/pub/software/scm/git/docs/git-rm.html
I ran into this once or twice myself early on with git and it was not quite what I expected either.
Solution 4 - Git
If you work with node projects, I like this .gitignore
:
# See http://help.github.com/ignore-files/ for more about ignoring files.
# dependencies
node_modules
# testing
coverage
# production
build
# misc
.DS_Store
.env
npm-debug.log
Solution 5 - Git
I had this problem. Somehow when I generated the file (using echo "node_modules" > .gitignore) it had inserted a garbage character at the beginning of the file (I blame powershell).
So, if you run into this problem try deleting your .gitignore and starting over.
Solution 6 - Git
Well what works for me was add "node_modules" to .gitignore
backend\node_modules
frontend\your_proyect\node_modules
node_modules
Solution 7 - Git
Just remove the initial git configuration from your folder by
rm -rf .git
. Use the created .gitignore file and add all the file you want to add. Then reinitialize the git configuration in your folder with git init
.
This will solve your problem.
Solution 8 - Git
None of the solutions above worked for me and I don't know why
Eventually what I did was:
- Duplicated to project folder in order to don't work with the main one
- Then I removed .git & .gitignore file (CMD+SHIFT+DOT shows hidden files)
- Added .gitignore file with
touch .gitignore
at root and addednode_modules
- Initialized git again with
git init
- Added remote again with
git remote add origin your_repo
git add .
git commit -m 'added ignore file'
git push -u origin master
And continue working with this new directory. Please note that it was a solution for me because it was my first commit.