2016-07-19 1 views
7

У меня есть файл .gitignore, и он игнорирует некоторые файлы. Я обновил файл .gitignore (удалил несколько имен файлов и добавил некоторые имена файлов). Это не отражено в git status. Как заставить git обновлять эти изменения, чтобы файлы треков, которые не отслеживались раньше, и наоборот.Force git для обновления .gitignore

Я пробовал это question, но все мои файлы не отслеживаются (согласно моим обновленным .gitignore). (В простом, как я могу заставить git удалять файлы, как только обновляется или удаляется .gitignore).

+1

Git ignore не будет работать с файлами, которые уже были отслежены. В этом случае вам нужно сначала «git rm» файлы, прежде чем добавлять их в '.gitignore'. –

+5

Возможный дубликат [Игнорировать файлы, которые уже были переданы в репозиторий Git] (http://stackoverflow.com/questions/1139762/ignore-files-that-have-already-been-committed-to-a-git- репозиторий) – intboolstring

ответ

3

Если вы хотите добавить все файлы, удалить все имена из .gitignore файла, а не файл .gitignore и commit его, а затем попробовать

git config --global core.excludesfile ~/.gitignore_global

Некоторые файлы игнорируются мерзавца в зависимости от операционной системы (как .dll в окнах). Для более information.

Теперь

git add . 

git status 

git commit -m "your message" 

Или

Вы можете попробовать простой хак, он может или не может работать. Удалите все имена файлов из файла .gitignore и добавьте эту строку !*.*, затем add и commit.

+0

« удалить все имена файлов из файла .gitignore, а не файла .gitignore и зафиксировать его »Что это значит? – m93a

14

Сначала вам необходимо очистить cache.

  • git rm -r --cached .
  • git add .
  • git commit -m "Suitable Message"
+0

Я прямо упоминал (и связал), что это не помогло моей проблеме. –

+1

Выполняет ли 'git status' track' .gitignore' файл? – Shravan40

+2

Чтобы остановить отслеживание файла, который в настоящее время отслеживается, используйте 'git rm --cached'. – joker

0

Предполагая, что здесь, что ваш текущий рабочий каталог пуст.

Вы можете проверить, какие файлы git отслеживает в настоящее время, используя git ls-files. Если у вас много файлов, вы можете использовать git ls-files | grep hello.txt, чтобы узнать, отслеживает ли git этот файл.

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

 Смежные вопросы

  • Нет связанных вопросов^_^