.gitignore не игнорирует каталоги
Что я сделал:
Я думаю, что из github gui возникли некоторые странные конфигурации, которые вызвали эту проблему, и не позволили мне легко использовать git из командной строки или даже git - bash.
В итоге я просто удалил github и git, а затем переустановил только git для Windows. У меня теперь все работает от командной строки (кроме ssh, который я запускаю из git - bash). Гораздо проще и надежнее, чем github gui.
Спасибо mu 無 за то, что нашли время, чтобы попытаться понять это. Я не закончил использовать его ответ, но если бы мне не нужно было переустанавливать git, это было бы то, что мне нужно было сделать.
Я использую github gui на своей локальной машине. Я только заметил, что коммит, который я собирался сделать, собирался обновить все мои недавно обновленные модули node. Я установил свой .gitignore, чтобы игнорировать весь каталог node_modules/
.
Я не уверен, что с этим делать. Все типы файлов, включенные в .gitignore, были проигнорированы. Это просто каталоги, которые, по-видимому, игнорируются.
Вот мой файл .gitignore:
#################
## 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/
Ответы
Ответ 1
У вас есть орфографическая ошибка в правиле игнорирования. Вы игнорируете node_modules/
вместо node_module/
.
ИЗМЕНИТЬ
Поскольку каталог node_modules
уже отслеживается как часть репозитория, правило .gitignore
не будет применяться к нему.
Вам нужно отформатировать каталог из git с помощью
git rm -r --cached node_modules
git commit -m "removing node_modules"
Вы можете запустить приведенное выше 2 в git-bash
.
После этого правило .gitignore
будет игнорировать каталог.
Обратите внимание, что это приведет к удалению каталога node_modules
из ваших других репозиториев после того, как вы введете изменения. Только исходное репо, в котором вы сделали этот фиксаж, по-прежнему будет иметь папку node_modules
.
Ответ 2
Если файлы уже отслеживаются, файл .gitignore
не будет отменять это. Вам нужно будет использовать git rm --cached <files>
Подробные сведения о git rm
см. в разделе
https://www.kernel.org/pub/software/scm/git/docs/git-rm.html
Я наткнулся на это раз или два раза раньше с git, и это было не совсем то, что я ожидал.
Ответ 3
Если вы работаете с проектами node, мне это нравится .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