我正在使用 yard生成我的项目的文档。即使认为文档可以生成,因此实际上不需要进行版本控制,我们还是决定这样做,因为这样可以更容易地看到代码(注释)更改对实际文档的影响。
问题是每次 yard 生成文档时,它都会更改每个文件开头的日期,导致所有文件都被视为已更改。
有没有办法告诉 git 忽略这些行以检测文件是否已更改,或者有一种方法可以将 yard 配置为在文件相同时不重新生成文件?
谢谢
更新
我知道我可以做一个脚本或其他任何东西,如果只是日期发生了变化,它就会清理文件。 所以我的问题是有一种 Git 方法可以做到,即我应该阅读差异驱动程序还是应该执行干净的脚本。
如果我要走向清洁之路,那么使用 git 钩子(Hook)或将其集成到文档生成中会更好吗?
最终,我对跟踪由于生成的文档中的特定提交而引起的更改的任何其他方式感兴趣。
我还没有真正解释我的问题是什么(以及为什么我要尝试对不需要的东西进行版本控制)所以我们开始吧。
有时,代码中的一点修改会搞砸文档,因此我能够看到提交对文档的影响。
例子: 我为 vim 使用模式行(文件第一行的注释告诉 vim 不同的信息)
知道我有一个包含模块文档的文件
#vi: my vim setting
# Documentation of module A
module A
.... some code
end
我在其他地方使用了这个模块
#vi : my vim setting
( 2 blank lines)
module A
.... some different code
end
到那时,一切都很好,A 的文档将是 模块 A 的文档
。但是,如果有人(比如我)在最后一个文件中删除了一个空行并只留下一个(是的,我在模式行和代码之间留了 2 个空行),那么院子认为模式行是模块 A 的文档,它将是 vi : 我的 vim 设置
。
问题是,除了查看每一页之外,没有办法检测文档是否被搞砸了。使用 git,我可以快速查看和检查更改的内容,甚至可以找到更改的时间(这很重要,因为这样我就可以找出更改的原因)。
最佳答案
不是直接的答案,只有元素:
git diff
有-G
选项来只保留匹配特定正则表达式的补丁。似乎没有用于排除 与您的日期线匹配的行的标志,但也许您会富有想象力地构建一个正则表达式来保留除您的日期线之外的任何内容。diff
有这样一个选项(diff -I
),所以如果你能想办法将 git 生成的 diff 提供给 diff,你就可以开始了.-
meld
是一个图形差异查看器,它与 git 一起工作得很好——例如在项目的目录上调用meld dir/
会打开一个窗口,显示所有与HEAD
不同的文件——并且可以使用正则表达式来忽略某些行(编辑 >首选项 > 文本过滤器)。它针对 Linux 发行版(至少针对 Ubuntu)打包,并且该网站声称它也可以在 MacOS X 和 Windows 上运行(我还没有尝试过)。 - 我还没有尝试过与 git 集成的所有可用差异工具,但它们可能提供类似的功能。
关于git - 如何自定义 diff git 以忽略码日期生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10959850/