gpt4 book ai didi

如果存在具有不同扩展名的文件,则 Gitignore 文件

转载 作者:太空狗 更新时间:2023-10-29 12:46:43 25 4
gpt4 key购买 nike

在一个涉及解析器的项目中,一些源代码是程序的产物。例如,yacc 基于 .yy 文件生成实现解析器的源代码文件。

因为 .yy 文件中的小修改可能会导致编译后相应源代码文件发生大的变化,并且生成的源代码在生成后(几乎)从未更改过。此类源代码文件非常适合 .gitignore 列表。

现在当然可以手动将此类文件写入列表:

lexer1.cpp
parser1.cpp
lexer2.cpp
parser2.cpp

但是当一个人构建一个新的解析器时,他/她很可能会忘记将文件添加到列表中。

有没有一种方法可以指定如下所示的模式:

Given a file foo.ext1 exists, ignore foo.ext2.

因此提供了 ext1ext2。对于词法分析器/解析器,这意味着将此模式应用于 .xx/.cpp.yy/。 cpp.

这可能无法通过 .gitignore 直接实现,但也许已经为此实现了一些钩子(Hook)?

最佳答案

我可以看到三种方法来做到这一点——直接回答问题,不,忽略处理只咨询有问题的路径名,而不是关于环境的任何其他内容。

  1. 将生成的源放在您忽略的 generated 文件夹中。

    我,我最喜欢这个,我知道我是少数,但我不喜欢在我的源目录中构建碎屑。

  2. 让你的 makefile 目标也用

    更新 .gitignore
    grep -qs ^target$ .gitignore || echo target >>.gitignore

    其中 target 是生成的源文件,作为配方的一部分。

  3. 在生成的文件名中放置一些标记,scanner.generated.c 或其他东西。

出于某种原因,我真的不喜欢清除不需要的源的预提交钩子(Hook),git 从提交中删除东西本身就是令人不安的。

关于如果存在具有不同扩展名的文件,则 Gitignore 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28325195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com