Я хочу игнорировать все правила .gitignore в подкаталоге, кроме правил .gitignore в корне.
например) у меня уже есть .gitignore
файл в структуре каталогов /a
.
А также .gitignore
файл в формате /a/b
. Допустим, /a
есть a.txt
b.txt
файлы.
/a/b
есть .config
файл. .gitignore
определяет .config
в /a/b
.
.config
файл будет проигнорирован .gitignore
в /a/b
.
Но я действительно хочу отслеживать .config
файл, игнорируя правила .gitignore
в подкаталоге.
Является ли это возможным?
заранее спасибо
/a/b/c
и обновление.gitignore
в/a/b
, возможно в/a/b/c
игнорировать правила в/a/b
и вместо того, чтобы использовать только правили с/a
."An optional prefix ! which negates the pattern; any matching file excluded by a previous pattern will become included again."
inner .gitignore
будет сливатьсяouter .gitignore
с более высоким приоритетом, а не просто отменяться.Допустим, вы хотите включить его
node_modules
в свой репозиторий, но у некоторого последующего модуля есть.gitignore
свой собственный. Вы можете отменить правила, добавив в корневой.gitignore
файл следующее:источник
node_modules/mod1
,node_modules/mod2
внутри обоих есть .gitignore, который игнорирует более глубокоеnode_modules
внутри них (например,node_modules/mod1/node_modules
я часто добавляю и удаляю модули, поэтому я не очень хорошо знаю и вручную добавляю правила для игнорированияnode_modules/mod1/.gitignore
или добавления вручную!node_modules/mod1/node_modules
все время. В основном я пытаюсь развернуть приложение.gitignores
Ключ к проблеме здесь в том, что родительский каталог исключен. Откуда
$ man gitignore
:Вот как я заставил это работать. Дано:
/.gitignore
:Затем
/b/foo
будут отображаться как включенные файлы, а все файлы/a
и/c
будут исключены. Компромисс заключается в том, что вам нужно добавить отрицание для всех родителей любого каталога, в который вы хотите включить файлы.источник
!/b/**/*
?Насколько я знаю, это невозможно сделать. Поскольку локальный .gitignore перезапишет корневой ginignore, я добавляю вручную обходной путь.
источник
.gitignore
не работал у меня, поскольку родитель переопределяет любые настройки дочерней папки. Если вы принудительно добавите, используя,git add -f myfile.txt
он начнет отслеживать изменения в обход родительских.gitignore
настроек.