Почему не работает gitignore
Перейти к содержимому

Почему не работает gitignore

  • автор:

Почему не работает .gitignore?

5d3858a41b53a606835366.png

Почему не работает .gitignore?
-В файле добавлены исключения
*json
admin_list.json
users_data.json
Но при git pull изменения все равно скачиваются.Мне бы хотелось не трогать данные файлы,а остальное обновлять(.py)

  • Вопрос задан более трёх лет назад
  • 1691 просмотр

Комментировать

Решения вопроса 1

Decadal

gitignore работает немного не так. В нём указываются файлы, которые вы бы хотели менять локально, но не хотели бы их загружать в гит.
А если в гите что-то изменилось, вы обязаны это получить к себе при git pull

Ответ написан более трёх лет назад

Нравится 2 2 комментария

.gitignore не игнорирует

Author24 — интернет-сервис помощи студентам

Есть проект на java, пишу в intelliJ idea или eclipse. Не знаю сколько раз я пытался создавать файл .gitignore, но на github упорно заливаются все файлы (от IDE, ос и пр. ненужные в репозитории вещи). Файл .gitignore создаю на gitignore.io. Как правильно создать файл .gitignore и добавить его к проекту? Сначала нужно создать репозиторий, или проект подключать к существующему репозиторию? Или уже просто коммитить файлы вручную?

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

.gitignore
Подскажите пожалуйста, добавляю строки в .gitignore, делаю коммит, ненужные файлы и папки всё равно.

.gitignore
Доброго времени суток. У меня возник такой вопрос: у меня есть проект (локально, на репозитории и.

Gitignore
на скринах видно, я же добавил всю папку идею в игнор чего ему надо.

.gitignore
Здравствуйте. Не получается игнорирование файлов, а точнее каталогов. Создал .gitignore и в нем.

Эксперт .NET

10380 / 6332 / 1483
Регистрация: 25.05.2015
Сообщений: 19,213
Записей в блоге: 14

Файл надо дорабатывать при необходимости.
Для этого надо понимать, что в нём пишут: https://git-scm.com/docs/gitignore
Если файлы добавлены под контроль версий до появления gitignore, то они продолжатся контролироваться.

3407 / 2428 / 686
Регистрация: 02.08.2011
Сообщений: 6,627

Если нужно начать игнорировать однажны уже закомиченные файлы, то вроде как есть workaround:
0. Коммитим все, чтобы не было никаких pending changes.
1. Удаляем все только из индекса, но не из working tree: git rm -r —cached .
2. Повторно добавляем все в индекс: git add .
3. Коммитим: git commit -m «.gitignore is now working»

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

.gitignore
Закомитил всю директорию проекта. Потом изменил файлы. То есть они у меня висят как modified.

Не игнорируются файлы в .gitignore
Всем привет! Записал в .gitignore файлы, которые должны игнорироваться, но они все равно.

Whitelist для gitignore
пишу проект на visual studio на c# с использованием git, в стандартном gitignore присутствует .obj.

.gitignore удаление мусора
Добрый день! У меня одна проблема. При разработке в репозиторий был добавлен так называемый.

Или воспользуйтесь поиском по форуму:

.gitignore Не работает исключение (отмена) игнорирования (со восклицательным знаком !) — причина. Как исправить

vedro-compota's picture

Ранее мы уже говорили об одной ситуации, когда .gitignore «не работает», в этой же заметке рассмотрим ситуацию связанную уже непосредственно с правилами написанными в этом файле.

Сразу скажем, что проверять работу правил можно такой командой.

Главная мысль

Если родительская папка (а не её содержимое) данного элемента была проигнорирована ранее в каком-то правиле, то уже не получается отменить данном правило для её потомка.

It is not possible to re-include a file if a parent directory of that file is excluded.

— это было актуально до версии 2.8 в будущем, может быть исправят.

Пример

Пусть у нас есть директория, в которой мы хотим всё игнорировать, кроме самой этой директории — в этом случае нам достаточно закинуть в неё такой .гитигнор:

# игнорироровать папку и содержимое * # Но не сам наш файл: !.gitignore

Но предположим, что нам захотелось не игнорировать ещё одну подпапку (в этой) скажем её название images — то есть нам тоже хочется сделать, чтобы она сохранилась по контролем, а содержимое не нужно. Тогда если мы напишем так:

# игнорироровать папку и содержимое * # Но не сам наш файл: !.gitignore !images/.gitkeep

(используем .gitkeep) — то исключение
!images/.gitkeep уже не сработает так как предыдущее правило звездочки * уже отправила родительскую для гиткипа папку в игнор (см. «Главную мысль» выше).

Как правильно сохранить поддиректорию без содержимого в .gitignore если нужно игнорировать родителя

А потому правильно сохранить подпапку можно так (содержимое игнора родительской папки):

# игнорироровать содержимое папки в который лежит этот файл /* # Но не сам наш файл и не: !.gitignore !foiv_images/ /foiv_images/* !foiv_images/.gitkeep

Разберем эти правила подробнее:

  • /* — игнорирует всё в данной папке (в которой лежит .gitignore), но не саму её, что очень важно — если просто поставить звездочку, то мы подпадём под правило, что если родитель проинорирован, то вернуть потомка уже нельзя
  • !.gitignore — отмена игнорирования самого файла
  • !images/ — отменяем игнор папки (чтобы гиткип внутри её не подпал под правило)
  • /images/* — но игнорим все содержимое
  • !foiv_images/.gitkeep — но не игнорим гиткип

Key Words for FKN + antitotal forum (CS VSU):

  • .gitignore
  • exclude not working
  • не работает
  • звездочка и слэш звездочка
  • .gitignore отмена игнорирования
  • git

Файл .gitignore не работает

Отношения с файлом .gitignore у меня никогда не складывались. Он то работал, то не работал. Иногда приходилось ждать, чтобы git проверил изменения в папке сотен фотографий. Плюс сам индекс этой проверки весил очень и очень много.

А ошибка была в том, что я сперва добавлял весь проект в git

git add --all

А потом, поняв? что лишние файлы проверять не надо, добавлял файл или папку в .gitignore . Как следствие — если git и переставал следить за теми файлами, которые я добавил в файл, то из индекса он их не удалял. Как известно индекс git — это полная копия файлов + изменения. Вот и получается, что если у вас есть сотня файлов, то git их все скоипрует в индекс.

К тому же, — он будет их игнорировать при последующих коммитах, но при этом он будет о них помнить и каждый раз проверять не случилось ли что с ними.

С этим не надо миритmся. Подобно команде git add . У git есть еще команда rm. Она удаляет файл из индекса.

git rm -rf --cached . git add .

Удаляем все файлы из индекса. А потом их снова добавляем, но уже с учетом .gitignore

В процессе, он напишет что файлы удалены — не бойтесь (лично я чуть кирпичный завод не открыл). Файлы удаляются только из индекса.

Оставлять комментарии могут только зарегистрированные пользователи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *