Подтвердить что ты не робот

.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/
4b9b3361

Ответ 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