Ответ 1
Вы можете попробовать комбинацию, похожую на:
*
!/**/
!*.*
Это правило gitignore
исключений (отрицательный шаблон) должно игнорировать все файлы, кроме тех, с расширением.
Как упоминалось ниже Mad Physicist, правило:
Невозможно повторно включить файл, если родительский каталог этого файла исключен. (*
) < ш > (*
: если определенные условия не выполняются в git 2.?, см. ниже)
Вот почему !/**/
важен (белым списком родительских папок рекурсивно), если мы хотим иметь файлы белого списка.
Я упомянул то же правило в подобных случаях, как:
- Gitignore за исключением одной папки и всего ее содержимого - независимо от уровня вложенности
- Git кроме вспомогательной директории и файлов игнорируемого каталога
- Gitignore исключает определенные файлы во всех подкаталогах
Как Jakub Narębski комментарии, вы можете не игнорировать все файлы без расширения.
Мой совет:
- добавьте сначала файл без расширения, который имеет значение
- затем отредактируйте свой
.gitignore
, как показано выше: файлы с версией не будут проигнорированы (даже если у них нет расширения). Все остальные будут проигнорированы.
Для любых будущих файлов без расширения, которые вы хотели бы изменить:
git add -f -- myFile
Обратите внимание, что при git 2.9.x/2.10 (в середине 2016?) возможно повторное включение файла, если родительский каталог этого файла исключен если в пути не добавлено подстановочного знака.
Nguyễn Thái Ngọc Duy (pclouds
) пытается добавить эту функцию:
- зафиксировать 506d8f1 для git v2.7.0, вернули в commit 76b620d git v2.8.0-rc0
- commit 5e57f9c git v2.8.0-rc0,... reverted (!) в commit 5cee3493 git 2.8.0-rc4.
Однако, поскольку одно из правил повторного включения было:
Часть каталога в правилах повторного включения должна быть буквальной (т.е. без подстановочных знаков)
В любом случае это не сработало бы.