当我使用GIT进行版本控制时,如何忽略c代码的注释?

时间:2013-01-29 01:28:11

标签: git

我正在我们的项目上建立Git环境。 问题是,我们的项目包括生成的SW包(c文件),其中包含注释输出中的生成时间信息。 因此,每次生成SW包时,即使没有有效的更改,也会更改每个文件的内容。 因此,我不想跟踪c文件的已注释部分。 有什么办法吗?

2 个答案:

答案 0 :(得分:0)

正常的解决方案是将sw /目录添加到.gitignore文件中忽略的元素列表中:

sw/

但是如果由于结账的时间限制而需要那些生成的文件,那么你可以先让它们“假设不变”:
请参阅“git update-index --assume-unchanged on directory” 这样,即使更改了这些文件也不会显示在git status中;

答案 1 :(得分:0)

如果你真的想避免签出回购的每个人的长代,那么另一种选择是从生成的文件中删除注释,甚至只删除时间戳注释以避免虚假更改。当然,这存在源和生成的版本可能变得不同步的问题。

如果评论总是只占一行,并且遵循一个易于正则表达的简单模式(似乎很可能),那么使用grepsed或其他任何内容都不应该太难。< / p>

如果没有,你可以删除所有评论而不更改任何其他内容with gcc -fpreprocessed -dD -E file.c,尽管在该页面上还有一些其他答案说这并不总是有效,并提供了一些其他选项。