Как говорится в заголовке, можно ли добавить в файл gitignore "файлы без точек"?
Я предполагаю, что это позаботится обо всех этих назойливых файлах без расширения.
Как говорится в заголовке, можно ли добавить в файл gitignore "файлы без точек"?
Я предполагаю, что это позаботится обо всех этих назойливых файлах без расширения.
Вы можете попробовать комбинацию, похожую на:
*
!/**/
!*.*
Это правило gitignore
исключений (отрицательный шаблон) должно игнорировать все файлы, кроме тех, с расширением.
Как упоминалось ниже Mad Physicist, правило:
Невозможно повторно включить файл, если родительский каталог этого файла исключен. (*
) < ш > (*
: если определенные условия не выполняются в git 2.?, см. ниже)
Вот почему !/**/
важен (белым списком родительских папок рекурсивно), если мы хотим иметь файлы белого списка.
Я упомянул то же правило в подобных случаях, как:
Как Jakub Narębski комментарии, вы можете не игнорировать все файлы без расширения.
Мой совет:
.gitignore
, как показано выше: файлы с версией не будут проигнорированы (даже если у них нет расширения). Все остальные будут проигнорированы.Для любых будущих файлов без расширения, которые вы хотели бы изменить:
git add -f -- myFile
Обратите внимание, что при git 2.9.x/2.10 (в середине 2016?) возможно повторное включение файла, если родительский каталог этого файла исключен если в пути не добавлено подстановочного знака.
Nguyễn Thái Ngọc Duy (pclouds
) пытается добавить эту функцию:
Однако, поскольку одно из правил повторного включения было:
Часть каталога в правилах повторного включения должна быть буквальной (т.е. без подстановочных знаков)
В любом случае это не сработало бы.
*
!*/
!*.*
*
сообщает git игнорировать все.
!*/
, то unignores все, что является каталогом. Это важно.
!*.*
unignores всех файлов с расширением.
Без правила !*/
каталоги без .
в имени не будут перечислены, и ни один из ваших желаемых файлов не будет добавлен за пределы корневой папки.
Для справки, прочитайте эти два раздела в .gitignore документации:
Дополнительный префикс "!" что отрицает шаблон; любой соответствующий файл исключенный предыдущим шаблоном, снова включается. Это не можно повторно включить файл, если родительский каталог этого файла Исключенный. git не отображает исключенные каталоги для производительности причины, поэтому любые шаблоны на содержащихся файлах не имеют никакого эффекта, независимо от того, где они определены. Поместите обратную косую черту ( "\" ) перед первой "!" для шаблонов, которые начинаются с буквального "!" , например, "! Важно!.txt".
Если шаблон заканчивается косой чертой, он удаляется с целью после описания, но он найдет только совпадение с каталог. Другими словами, foo/будет соответствовать каталогу foo и paths под ним, но не будет соответствовать регулярному файлу или символической ссылке foo (это согласуется с тем, как метод pathspec работает вообще в Git).
В моих папках много файлов с расширениями *.c, *.h, *.txt, *.csv
и т.д., А также двоичные файлы без каких-либо расширений. Поэтому мне нужно было игнорировать все файлы, кроме .c,.h и .gitignore, так что это работа для меня: это мой пример .gitignore:
*/* #ignore all files in each directory
!*/*.c #unignore .c files in each directory
!*/*.h #unignore .h header files in each directory
!.gitignore #unignore .gitignore