Сила git для обновления.gitignore
У меня есть файл .gitignore
, и он игнорирует некоторые файлы. Я обновил файл .gitignore
(удалил несколько имен файлов и добавил некоторые имена файлов). Это не отражается на git status
. Как заставить git обновлять эти изменения, чтобы файлы треков, которые не отслеживались раньше, и наоборот.
Я пробовал этот вопрос, но все мои файлы не отслеживаются (согласно моему обновленному .gitignore
). (В простом, как я могу заставить git отменить файлы раз .gitignore
обновляется или удаляется).
Ответы
Ответ 1
Если вы хотите добавить все файлы, удалить все имена из .gitignore
файла, а не .gitignore
файла и commit
его, то попробуйте
git config --global core.excludesfile ~/.gitignore_global
Git игнорирует некоторые файлы в зависимости от ОС (например, DLL в Windows). Для получения дополнительной информации.
Сейчас
git add .
git status
git commit -m "your message"
Или же
Вы можете попробовать простой взлом, он может или не может работать. Удалите все имена файлов из файла .gitignore
и добавьте эту строку !*.*
, Затем add
и commit
.
ОБНОВИТЬ
Просто объясню на примере. Скажем, у вас есть папка build
которая уже добавлена и отслеживается git. Теперь вы решили не отслеживать эту папку.
- Добавить эту папку (
build
) в .gitignore
- Удалить папку
build
- Зафиксируйте ваши изменения
Отныне git не будет отслеживать папку build
.
Ответ 2
Сначала вам нужно очистить существующий cache
git.
Как только вы очистите существующий кеш, добавьте/разместите все файлы в текущем каталоге и подтвердите
-
git add.
-
git commit -m "Suitable Message"
Ответ 3
Вы можете решить эту проблему, удалив кеш этих файлов, когда вы получаете эту проблему. Вы упомянули проблему, когда вы совершили некоторые определенные файлы один раз, а затем добавили их позже в.gitignore.
git rm -r --cached <your_file.extension>
git commit -am "Suitable Message"
Такое же решение предлагается @sharvan40 выше, но вам не нужно удалять кеш для всех файлов. Он создает новую фиксацию для всех ваших файлов.
Ответ 4
Предположим, что ваш текущий рабочий каталог пуст.
Вы можете проверить, какие файлы git в настоящее время отслеживает, используя git ls-files
. Если у вас много файлов, вы можете использовать git ls-files | grep hello.txt
git ls-files | grep hello.txt
чтобы узнать, отслеживает ли git этот конкретный файл.
Если он отслеживает его, то используйте git rm hello.txt
чтобы отследить его (как упоминал Тим в своем комментарии). Возможно, сначала зафиксируйте это состояние без следа, а затем добавьте его в свой .gitignore
при следующем коммит. В прошлом я видел какое-то причудливое поведение, когда пытался игнорировать и удалять в одном и том же коммите.