Почему git игнорирует все файлы в каталоге, кроме одного? - PullRequest
6 голосов
/ 30 сентября 2011

Я знаю, что есть много вопросов о том, как игнорировать каталоги, и у меня обычно не было никаких проблем до сих пор, но сейчас я застрял с чем-то, чего не понимаю.

Вот мойструктура каталогов:

/src
/war
  com.example.MyProject/
  WEB-INF/
    classes/
    deploy/
    lib/

Я хочу игнорировать содержимое каталогов classes/, deploy/ и com.example.MyProject/, а вот мой файл .gitignore:

*.log
war/WEB-INF/classes/
war/WEB-INF/deploy/
com.example.MyProject/

Файлы вcom.example.MyProject/ генерируются автоматически, и git игнорирует их все, кроме файла с именем com.example.MyProject.nocache.js.Фактически, когда я делаю git status, я получаю:

# On branch myBranch
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#
#       modified:   .gitignore
#       ......
#       modified:   war/com.example.MyProject/com.example.MyProject.nocache.js

Почему git отказывается игнорировать этот единственный файл в этом каталоге?Что я делаю не так?

Ответы [ 2 ]

6 голосов
/ 30 сентября 2011

Если файл уже отслеживается Git, добавление файла в .gitignore не помешает Git отследить его.Вам нужно будет сделать git rm --cached <file>, чтобы сохранить файл в своем дереве, а затем проигнорировать его

5 голосов
/ 30 сентября 2011

Если файл уже добавлен в индекс, он все равно останется там, даже если вы добавите его в файл .gitignore.

Попробуйте удалить файл из индекса git:

git rm --cached war/com.example.MyProject/com.example.MyProject.nocache.js

Опция --cached гарантирует, что файл остается в вашей папке и просто удаляется из индекса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...