Я хотел бы сообщить git
, чтобы игнорировать файл с именем foo.ext
тогда и только тогда, когда существует другой файл с именем foo.txe
. Я почти уверен, что это невозможно сделать с синтаксисом .gitignore
, но, возможно, есть другие сложные способы, о которых я не думаю?Как сообщить git игнорировать определенный файл, если и только если существует другой файл?
Пример использования: Я часто храню данные документа LaTeX в подкаталоге с именем figures
. И я обычно рисую свои фигуры с Xfig. Моя Makefile вызывает fig2dev
генерировать пару файлов из figures/foo.fig
источника:
figures/foo.pdf
, файл PDF для графической части,figures/foo.pdf_t
, латексной файл для текста, сincludegraphics
команды, чтобы включать PDF.
Поскольку эти два файла сгенерированы, я хотел бы git
игнорировать их. Я мог бы добавить два простых шаблона исключения в мой файл .gitignore
, но также случается, что некоторые из моих цифр находятся в обычном PDF-файле, не генерируются из другого источника. И, конечно же, мне бы хотелось git
не игнорировать эти файлы figures/bar.pdf
.
Я хотел бы добавить что-то вроде:
/\(**\)/figures/\(*\).fig: /\1/figures/\2.pdf /\1/figures/\2.pdf_t
к моему .gitignore
файл, а это означает, что любой файл с именем /<some_path>/figures/<some_name>.pdf
или /<some_path>/figures/<some_name>.pdf_t
должен быть проигнорирован, если и только если файл с именем /<some_path>/figures/<some_name>.fig
существует с тем же <some_path>
и <some_name>
.
Возможный дубликат [Gitignore файла, если файл с другим расширением существует] (http://stackoverflow.com/questions/28325195/gitignore-a-file-if-file-with-different-extension-exists) –