【发布时间】:2015-04-04 04:48:22
【问题描述】:
在涉及解析器的项目中,某些源代码是程序的产物。例如,yacc 生成 - 基于 .yy 文件 - 实现解析器的源代码文件。
由于.yy 文件中的小修改可能导致编译后相应源代码文件发生较大更改,并且生成的源代码(几乎)在生成后从未更改。此类源代码文件非常适合 .gitignore 列表。
现在当然可以手动将此类文件写入列表:
lexer1.cpp
parser1.cpp
lexer2.cpp
parser2.cpp
但是当一个人构建一个新的解析器时,他/她很可能会忘记将文件添加到列表中。
有没有办法指定一个如下行为的模式:
给定文件
foo.ext1存在,忽略foo.ext2。
因此提供ext1 和ext2。对于词法分析器/解析器,这意味着将这种模式应用于.xx/.cpp 和.yy/.cpp。
.gitignore 直接可能无法做到这一点,但也许已经为此实现了一些钩子?
【问题讨论】:
-
据我所知,没有简单的方法可以做到这一点。是否将您的
.yy和相应的.cpp文件移动到子目录中,然后忽略目录中的所有.cpp文件? -
@Chris:这是一种选择,但如果可以生成一种通用方法来忽略编译器-编译器产品而不必担心文件结构,那当然会更优雅。
-
文件实际上是根据上面示例中的某种模式命名的吗?你可以忽略
lexer*.cpp和parser*.cpp。 -
如果你使用的是 linux,你可以编写一个更新 .gitignore 的 bash 脚本。
标签: git wildcard gitignore githooks