.gitignore не работает для меня
Я пытаюсь создать новый репозиторий git из существующей папки. Я создал файл .gitignore
в корневой папке. Но если я скажу
git add *
git commit
git push
файлы, которые следует игнорировать, по-прежнему сохраняются в удаленном репозитории. Я нахожусь в Windows.
Также я купил лицензию для SmartGIT. Он также, кажется, игнорирует .gitignore
. Мне нужно вручную выбрать, какие новые файлы нужно зафиксировать.
Что я делаю неправильно?
Ответы
Ответ 1
Попробуйте "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
Ответ 2
Ваш файл по-прежнему нужно отслеживать, вы можете увидеть, выполнив git status
, который покажет вам, что ваш файл модифицирован, даже если он находится в .gitignore
Вам нужно сделать это:
git update-index --assume-unchanged [path_to_file]
Ответ 3
Уже отслеживаются ли ваши файлы? .gitignore только заставляет замолчать комментарии о незатронутых файлах, но не остановит отслеживаемый файл.
Ответ 4
У меня были проблемы с .gitignore. Я проверил связанные ответы, о которых упоминалось, что фиксировало половину проблемы.
Что действительно получило, что gitignore работает для меня, это добавить комментарий к первой строке файла. Git не анализировал исключение, расположенное на первой строке.
Приветствия
Ответ 5
Трюк, с которым я сталкиваюсь в окнах, заключается в том, что с помощью 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)
Ответ 6
Возможно, вы создали текстовый файл с кодировкой UTF-8. Попробуйте сохранить его в кодировке ANSI. В git bash вы можете проверить с помощью vi -b.
Ответ 7
Вероятно, ваша маска исключаемого файла неадекватна.
Ответ 8
Я использую git версию 1.7.12.3 на MacOSX, и первая строка .gitignore также не учитывается. Просто добавьте комментарий в первую строку.
Ответ 9
Строка комментария в качестве первой строки файла имеет решающее значение! Я потратил немало времени, пытаясь исключить файлы только для того, чтобы найти, что GIT игнорирует первую строку в файле ignore.