clifdensprit
clifdensprit

Reputation: 4901

.gitignore is not ignoring directories

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/

Upvotes: 99

Views: 104897

Answers (10)

JWCS
JWCS

Reputation: 1201

I haven't seen this posted anywhere, as perhaps it should be obvious, until I forgot, but adding a comment to the end of a gitignore line is NOT actually a comment! Comments on their own line!

# .gitignore (this is a comment)
my_bad_dir/ # This is not a comment, and my_bad_dir/ won't be ignored
~$ man gitignore | grep comment
       •   A line starting with # serves as a comment. 

Upvotes: -1

Sudheer Singh
Sudheer Singh

Reputation: 654

try this command, it will resolve your issue:

git config core.ignorecase true

Upvotes: -1

Mahesh Aryal
Mahesh Aryal

Reputation: 9

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.

Upvotes: 0

Eli
Eli

Reputation: 25

Well what works for me was add "node_modules" to .gitignore

backend\node_modules
frontend\your_proyect\node_modules
node_modules

Upvotes: 0

Sasan Soroush
Sasan Soroush

Reputation: 925

None of the solutions above worked for me and I don't know why

Eventually what I did was:

  1. Duplicated to project folder in order to don't work with the main one
  2. Then I removed .git & .gitignore file (CMD+SHIFT+DOT shows hidden files)
  3. Added .gitignore file with touch .gitignore at root and added node_modules
  4. Initialized git again with git init
  5. Added remote again with git remote add origin your_repo
  6. git add .
  7. git commit -m 'added ignore file'
  8. 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.

Upvotes: 0

Anshul Goyal
Anshul Goyal

Reputation: 76847

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.

Upvotes: 331

Scotty.NET
Scotty.NET

Reputation: 12561

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.

enter image description here

Upvotes: 34

Zach Dahl
Zach Dahl

Reputation: 637

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.

Upvotes: 3

prosti
prosti

Reputation: 46311

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

Upvotes: 4

Matthew M
Matthew M

Reputation: 1155

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.

Upvotes: 21

Related Questions