Как не игнорировать на основе ключевого слова в.gitignore
Поскольку я использую Microsoft Nuget, я хочу игнорировать все каталоги пакетов в моих проектах (их очень много, и все эти файлы временные). К сожалению, в библиотеке JavaScript у меня тоже есть в том же хранилище, мне нужен каталог пакета. Итак, у меня есть.gitignore
...
package
...
Но в моем каталоге
/JavaScript/package/importantfiles
Я хочу не игнорировать этот файл.
Как я могу позволить игнорировать весь "пакет", но в каталоге /JavaScript/... я хочу, чтобы пакет был включен в систему контроля версий?
1 ответ
Не забывайте, что:
Невозможно повторно включить файл, если исключен родительский каталог этого файла (
*
)
(*
: если в git 2.8+ не выполнены определенные условия, см. ниже)
Это означает, что вам нужно игнорировать файлы папки пакета, чтобы игнорировать один из этих файлов:
package/*
!importantFile
Обратите внимание, что в git 2.8.x/2.9 (середина 2016 года?) Может оказаться возможным повторно включить файл, если родительский каталог этого файла будет исключен, если в пути не будет подстановочного знака.
Nguy Thn Thái Ngọc Duy ( pclouds
) пытается добавить эту функцию:
- commit 506d8f1 для git v2.7.0, возвращен в commit 76b620d git v2.8.0-rc0
- commit 5e57f9c git v2.8.0-rc0,... отменен (!) в коммите 5cee3493 git 2.8.0.
Так что в вашем случае это будет работать:
/JavaScript/package
!/JavaScript/package/importantfiles