【发布时间】:2015-09-16 13:07:21
【问题描述】:
我想告诉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> 和<some_name> 的名为/<some_path>/figures/<some_name>.fig 的文件时,应忽略任何名为/<some_path>/figures/<some_name>.pdf 或/<some_path>/figures/<some_name>.pdf_t 的文件。
【问题讨论】: