Сила 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. Теперь вы решили не отслеживать эту папку.

  1. Добавить эту папку (build) в .gitignore
  2. Удалить папку build
  3. Зафиксируйте ваши изменения

Отныне git не будет отслеживать папку build.

Ответ 2

Сначала вам нужно очистить существующий cache git.

  • git rm -r --cached.

Как только вы очистите существующий кеш, добавьте/разместите все файлы в текущем каталоге и подтвердите

  • 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 при следующем коммит. В прошлом я видел какое-то причудливое поведение, когда пытался игнорировать и удалять в одном и том же коммите.