.gitkeep файлы не существуют после push - PullRequest
0 голосов
/ 04 июля 2018

Я установил .gitignore файл со следующими строками

Это работает:

application/cache/*
!application/cache/index.html

Но это не работает:

web/uploads/*
!web/uploads/filters/.gitkeep
!web/uploads/payments/.gitkeep
!web/uploads/surveys/.gitkeep

Нет файлов /web/uploads или web/uploads/filters/.gitkeep, web/uploads/payments/.gitkeep или web/uploads/surveys/.gitkeep.

1 Ответ

0 голосов
/ 04 июля 2018

Существует большая разница между правилами, которые работают, и теми, которые не работают. Те, которые работают, работают с каталогом и файлом внутри него. Те, которые не работают, содержат промежуточные каталоги.

web/uploads/*

Это правило игнорирования говорит Git игнорировать все файлы и подкаталоги web/uploads.
Правила исключения, следующие за ним:

!web/uploads/filters/.gitkeep
!web/uploads/payments/.gitkeep
!web/uploads/surveys/.gitkeep

не соответствует ни одному файлу, потому что каталоги filters, payments и surveys (и их содержимое) игнорируются из-за предыдущего правила.

Простого решения этой проблемы не существует (или, по крайней мере, нет такого, о котором я знаю).

Решение существует (но оно многословно): вы должны указать Git игнорировать все в web/uploads, кроме подкаталогов filters, payments и surveys, тогда для каждого из них игнорировать все внутри это кроме .gitkeep.

Согласно правилам .gitignore, параграф выше представлен следующим образом:

# Ignore everything in web/uploads
web/uploads/*

# ... except for the 'filters' subdirectory...
!web/uploads/filters
# ... but ignore everything inside it...
web/uploads/filters/*
# ... except for .gitkeep
!web/uploads/filters/.gitkeep

# The same rules as above for 'payments'
!web/uploads/payments
web/uploads/payments/*
!web/uploads/payments/.gitkeep

# ... and surveys
!web/uploads/surveys
web/uploads/surveys/*
!web/uploads/surveys/.gitkeep
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...