Git кроме вспомогательной директории, и файлы игнорируемого каталога
Я использую git для управления моими источниками, у меня есть несколько файлов ниже:
Debug/a.dll
Debug/b.exe
Debug/c.png
Debug/Pic/a.png
Debug/Pic/b.bmp
Debug/Pic/c.dll
Я хочу игнорировать эти файлы:
Debug/a.dll
Debug/b.exe
Debug/c.png
Но чтобы исключить эти файлы из игнорирования:
Debug/Pic/a.png
Debug/Pic/b.bmp
Debug/Pic/a.dll
Ответы
Ответ 1
Git используйте .gitignore
, чтобы игнорировать или отслеживать файлы в игнорируемых путях.
В вашем случае вам нужно добавить это в свой .gitignore
файл в корневой каталог проекта. Создать файл не существует
#List of files to ignore
Debug/*
#List of files to exclude from the ignored pattern above
!Debug/Pic
!Debug/Pic/*
Что находится в содержании этого примера .gitignore
Debug/*
- Это будет игнорировать все файлы в папке Debug
!Debug/Pic/*
- !
- специальный символ в этом случае, говоря git исключить данный шаблон из игнорируемых путей.
Другими словами:
Мы "сказали" git игнорировать все файлы в папке Debug
, но для включения всех файлов в папку Debug/Pic/
.
Ответ 2
Сначала вы можете добавить подкаталог, а затем игнорировать содержащую директорию:
git add Debug/Pic
git ignore Debug
Это будет иметь побочный эффект, не отображающий добавление новых файлов в Debug/Pic, но вы можете просто добавить их вручную с помощью git add -f ', чтобы обойти предупреждение .gitignore.
Ответ 3
Как обычно, с исключением в gitignore
, правило для запоминания:
Невозможно повторно включить файл, если родительский каталог этого файла исключен (*
)
(*
: если определенные условия не выполняются в git 2.?, см. ниже)
Так как Debug/*
игнорирует папку Debug/Pic/
, попытка исключить содержимое этой папки не будет работать (!Debug/Pic/*
) с git 2.6 или меньше.
Сначала вы должны исключить папку. Затем его содержимое.
Debug/*
!Debug/Pic/
!Debug/Pic/*
Обратите внимание, что с git 2.9.x/2.10 (в середине 2016?) возможно повторное включение файла, если родительский каталог этого файла исключен если в пути нет добавленного шаблона.
Nguyễn Thái Ngọc Duy (pclouds
) пытается добавить эту функцию:
Итак, в git 2.9+, чтобы повторно включить папку Debug/Pic/
, вы можете сделать:
/Debug
!Debug/Pic