Есть ли способ сказать git включать только определенные файлы вместо игнорирования определенных файлов?
Мои программы обычно генерируют огромные выходные файлы (~ 1 ГБ), которые я не хочу выполнять резервное копирование в репозиторий git. Поэтому вместо того, чтобы делать
git add .
Мне нужно сделать что-то вроде
git add *.c *.cc *.f *.F *.C *.h *.cu
что немного громоздко...
Я уверен, что могу написать быстрый файл script ls содержимое каталога в .gitignore, а затем удалить файлы на основе файла .gitinclude(или какого-то подобного имени), но это кажется немного слишком хакерским. Есть ли лучший способ?
Ответы
Ответ 1
Мне не нужно было самому это пробовать, но из моего чтения TFM похоже, что обратный шаблон будет делать то, что вы хотите, Вы можете переопределять записи в .gitignore с более поздними отрицательными записями. Таким образом, вы можете сделать что-то вроде:
*.c
!frob_*.c
!custom.c
Чтобы игнорировать все файлы .c, кроме custom.c, и все, начиная с "frob _"
Ответ 2
создайте файл .gitignore в вашем репозитории, и вы хотите отслеживать только файлы c и игнорировать все остальные файлы, а затем добавить в него следующие строки....
*
!*.c
'*' будет игнорировать все файлы
и! будет игнорировать файлы для игнорирования.... поэтому здесь мы просим git не игнорировать файлы c....
Ответ 3
Лучшее решение для достижения этого
создать .gitignore
файл в репозитории root
, и если вы хотите включить только файл .c
, то вам нужно добавить строки ниже в .gitignore
файл
*.*
!*.c
это будет включать весь файл .c из каталога и подкаталога рекурсивно.
используя
*
!*.c
не будет работать во всех версиях git.
Проверено на
git версия 2.12.2.windows.2
Ответ 4
Используйте это в gitignore
*.*
!*.c
с версией git версии 2.7.4