Ответ 1
Согласно man gitignore:
ОПИСАНИЕ
Файл A
gitignore
указывает намеренно не проверенные файлы, которые следует игнорировать git. Заметка что все файлыgitignore
действительно касаются только файлов, которые еще не отслеживается git; чтобы игнорировать незафиксированные изменения в уже отслеживаемых файлах, обратитесь к документации git update-index -assume-unchanged.
Так что это не поможет, если вы уже добавили их. Это в основном для предотвращения добавления в первую очередь. Таким образом, вы можете игнорировать файлы .tmp
и добавить целый каталог, не опасаясь, что вы добавите файлы .tmp
.
Я считаю, что вы можете удалить их из индекса с помощью:
git rm --cached file_to_stop_tracking_but_dont_want_to_delete.txt
Update:
Кроме того, .gitignore
должен находиться в базовом каталоге или, по крайней мере, выше, где находятся эти каталоги. Кроме того, возьмите "*" из каталогов:
phpMyAdmin/
nbproject/
inc/mysql_config.php
!.gitignore
И будьте осторожны phpMyAdmin/
vs /phpMyAdmin
vs phpMyAdmin
. Также из man gitignore:
Если шаблон заканчивается косой чертой, он удаляется с целью следующее описание, но оно будет находить совпадение с каталогом. Другими словами,
foo/
будет соответствовать каталогуfoo
, а пути под ним он, но не будет соответствовать регулярному файлу или символической ссылкеfoo
(это в соответствии с тем, как метод pathspec работает вообще в git).Если шаблон не содержит косой черты
/
, git рассматривает его как оболочку glob pattern и проверяет совпадение с именем пути без ведущих каталогов.В противном случае git рассматривает шаблон как оболочку, подходящую для потребления
fnmatch(3)
с флагомFNM_PATHNAME
: подстановочные знаки в шаблоне не будет соответствовать/
в пути. Например,Documentation/*.html
соответствуетDocumentation/git.html
, но неDocumentation/ppc/ppc.html
. ведущая косая черта соответствует началу пути; например,/*.c
соответствуетcat-file.c
, но неmozilla-sha1/sha1.c
.