当且仅当存在另一个名为git
的文件时,我想告诉foo.ext
忽略名为foo.txe
的文件。我几乎可以肯定使用.gitignore
语法无法做到这一点,但我可能还有其他一些棘手的方法吗?
使用示例:我经常将LaTeX文档的图形存储在名为figures
的子目录中。我通常用Xfig设计我的数字。我的makefile调用fig2dev
来生成来自figures/foo.fig
源的一对文件:
figures/foo.pdf
,图形部分的PDF文件,figures/foo.pdf_t
,一个文本的LaTeX文件,带有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
的文件存在相同{{1}时,才会忽略任何名为/<some_path>/figures/<some_name>.pdf_t
或/<some_path>/figures/<some_name>.fig
的文件}和<some_path>
。
答案 0 :(得分:2)
您需要在文件名或文件夹中使用某些内容来确定哪些文件是自动生成的,哪些文件不是。根据代码的设置方式,您可以根据文件夹进行忽略。例如,对自动生成的文件使用figure-auto
,为手动创建的文件使用figure
。
figure-auto/
如果你只有一些你不想忽视的文件,你可以使用
figures/*.pdf
figures/*.pdf_t
!figures/keep-in-source-control.pdf
!figures/manually-created.pdf