Почему.gitignore не игнорирует мои файлы?
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
Внесите изменения в файл .gitignore .
Запустите git rm -r --cached. команда.
Запустите git add. команда
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