Почему.gitignore не игнорирует мои файлы?

Смотрите изображение ниже. Мой файл.gitignore должен игнорировать все файлы в src/dist, но это не так.

14 ответов

Решение

.gitignore игнорирует только файлы, которые еще не являются частью хранилища. Если вы уже git addВ некоторых файлах их изменения будут отслеживаться. Чтобы удалить эти файлы из вашего хранилища (но не из вашей файловой системы), используйте git rm --cached на них.

Файл.gitignore гарантирует, что файлы, не отслеживаемые Git, не будут отслеживаться.

Просто добавление папок / файлов в файл.gitignore не отследит их - они будут отслеживаться Git.

Чтобы отследить файлы, необходимо удалить из хранилища отслеженные файлы, перечисленные в файле.gitignore. Затем добавьте их и подтвердите изменения.

Самый простой, самый тщательный способ сделать это - удалить и кэшировать все файлы в хранилище, а затем добавить их обратно. Все папки / файлы, перечисленные в файле.gitignore, отслеживаться не будут. Из верхней папки в хранилище выполните следующие команды:

git rm -r --cached . git add .

Затем внесите ваши изменения:

git commit -m "Untrack files in .gitignore"

Обратите внимание, что все предыдущие коммиты с нежелательными файлами останутся в истории коммитов. При переходе на GitHub следует учитывать историю коммитов, которая может содержать .env или же client_secret.json файлы.

Рекомендуется создать файл.gitignore и заполнить его папками / файлами, которые вы не хотите отслеживать при запуске проекта. Тем не менее, часто необходимо добавлять в файл.gitignore после понимания того, что нежелательные файлы отслеживаются и хранятся.

Выполните следующие действия, чтобы работать с gitignore

  1. Внесите изменения в файл .gitignore .

  2. Запустите git rm -r --cached. команда.

  3. Запустите git add. команда

  4. git commit -m "Сообщение о фиксации"

Вы можете использовать это,

git rm -r --cached ./node_modules

если вы хотите игнорировать node_modules, например

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

Чтобы игнорировать их, сначала нужно удалить их, git rm их, совершить, а затем игнорировать их.

Если ваш файл .gitignore не игнорирует ваши файлы и каталоги.

.gitignore просто игнорирует файлы, которые еще не добавлены в репозиторий. Если вы уже добавили git определенные файлы, их модификации будут отслеживаться. Используйте git rm -r --cached для таких файлов, чтобы удалить их из вашего репозитория (но не из вашей файловой системы).

      git rm -r --cached .        #untrack files
git add .                   #re-adding the files
git commit -m "issue fixed" #commiting changes
git push                    #pushing changes

сначала проверьте .gitignoreкодирование.
убедитесь, что идентификатор кодировки utf-8.
затем неотслеживаемый ненужный файл с помощью git rm --cached filenameтеперь ваша проблема исправлена

Посмотрите на это: .gitignore не работает И особенно замечание от ADTC:

Убедитесь, что ваш файл.gitignore использует кодировку ANSI или UTF-8. Если он использует что-то вроде Unicode BOM, возможно, что Git не может прочитать файл. - ADTC 14 декабря 17 в 12:39

Если вы используете VS Code:

Проверить .gitignoreТип кодировки файла. Измените это на UTF-8если это не так. Выберите Reopen with Encoding возможность изменить кодировку файла.

Это сработало для меня!

Я столкнулся с той же проблемой, а затем понял, что не создал файл .gitignore должным образом.

В моем случае я почему-то создал файл .gitignore.txt. Git по-прежнему будет отслеживать файлы в файле .gitignore даже после того, как вы удалите .txt. расширение и сохраните его.

Попробуйте удалить старый файл и создать новый файл .gitignore с помощью 'touch .gitignore' в терминале, который решил это для меня.

Лучше создать файл.gitignore при запуске и упоминании файлов, которые мы хотим игнорировать. Если вы хотите игнорировать некоторые файлы, выполните gitrm -r --cached

Для некоторых файлов в моем проекте мне нужно было использовать git filter-branchчто лучше объяснено в этом ответе.

Если все вышеперечисленные решения не сработали, попробуйте это.

Целевые файлы, которые вы хотите игнорировать, не должны находиться в промежуточной области. Пожалуйста, проверьте это дважды.

Сначала удалите файл index.lock из репозитория git

rm -f .git/index.lock

а затем добавьте.gitignore

git add .gitignore
Другие вопросы по тегам