.gitignore не работает: файлы, которые следует игнорировать, по-прежнему фиксируются - PullRequest
27 голосов
/ 25 мая 2010

Я пытаюсь создать новый репозиторий git из существующей папки. Я создал .gitignore файл в корне папки. Но если я скажу

git add *
git commit
git push

файлы, которые следует игнорировать, по-прежнему фиксируются в удаленном хранилище. Я на винде. Также я купил лицензию на SmartGIT. Это также, кажется, игнорирует .gitignore. Я должен вручную выбрать новые файлы для фиксации.

Ответы [ 9 ]

27 голосов
/ 25 мая 2010

Попробуйте вместо "git add .".

Также у меня это работает (в Linux):

$ git init
$ echo foo > .gitignore
$ echo foo > foo
$ echo bar > bar
$ git add -v *
The following paths are ignored by one of your .gitignore files:
foo
Use -f if you really want to add them.
fatal: no files added
26 голосов
/ 23 октября 2012

Ваш файл должен все еще отслеживаться, вы можете увидеть, выполнив git status, который покажет вам, что ваш файл изменен, даже если он находится в .gitignore
Вам нужно сделать это:

git update-index --assume-unchanged [path_to_file]
21 голосов
/ 25 мая 2010

Ваши файлы уже отслежены? .gitignore только заставляет замолчать комментарии о неотслеживаемых файлах, но не мешает отслеживаемому файлу быть отслеженным.

12 голосов
/ 07 июля 2011

У меня тоже были проблемы с .gitignore. Я проверил связанные ответы, перечисленные около, которые исправили половину вопроса.

Что действительно заставило gitignore работать полностью для меня, так это добавить комментарий к первой строке файла. Git не разбирает исключение, расположенное на первой строке.

Приветствия

4 голосов
/ 04 марта 2013

Возможно, вы создали текстовый файл в кодировке UTF-8. Попробуйте сохранить его в кодировке ANSI. В git bash вы можете проверить это с помощью vi -b.

4 голосов
/ 15 ноября 2012

Уловка, с которой я столкнулся в Windows, заключается в том, что при использовании echo (согласно ответу Якуба Наренбского) вы должны быть осторожны с пробелами.

Как вы можете видеть под любым пробелом, прежде чем оператор перенаправления окажет влияние на фактическое игнорирование.

C:\test>dir /B
TOBEIGNORED

C:\test>echo TOBEIGNORED > .gitignore
C:\test>git status
[...]
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       .gitignore
#       TOBEIGNORED
C:\test>echo TOBEIGNORED> .gitignore
C:\test>git status
[...]
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       .gitignore
nothing added to commit but untracked files present (use "git add" to track)
0 голосов
/ 19 августа 2015

Строка комментария в качестве первой строки файла имеет решающее значение! Я потратил много времени, пытаясь исключить файлы, только чтобы обнаружить, что GIT игнорирует первую строку в файле игнорирования.

0 голосов
/ 08 декабря 2012

Я использую git версии 1.7.12.3 для MacOSX, и первая строка .gitignore также не учитывается. Просто добавьте комментарий в первой строке.

0 голосов
/ 25 мая 2010

Возможно, ваша маска исключаемых файлов неверна.

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