git忽略文件头

时间:2014-08-25 12:09:00

标签: git ignore

在我的一个项目中,所有源文件都有一个文件头,由另一个我根本没有影响的程序更新。这些文件都被签入git存储库,我用它来跟踪我的更改。 我的问题是,当这个其他程序稍微更改标题时,我必须查看这些更改并检查它们,即使它们与源代码完全无关。

在git中是否有可能忽略每个文件的特定部分?

标题总是覆盖相同数量的行(前22行),并且总是如下所示:

/**
 * \addtogroup ....
 * \ingroup ...
 * \{
 * 
 * \file        ....
 *
 * \brief       .....
 *
 * \author      $Author: ...... $
 *
 * Revision:    $Revision: .... $
 * Created on:  $Date: ...... $
 *
 * <br>=====================================================<br>
 * <b>Copyright 2012 by ...............</b>
 *
 *  ...........................................................<br>
 *  Restricted rights to use, duplicate or disclose of this code<br>
 *  are granted through contract.
 * <br>=====================================================<br>
 */

我确实找到了这个“Keyword-Expansion”但是这个接缝有点复杂,因为我不想让git更新标头(只是忽略它)。并且Ruby脚本也存在一些问题:为此不能在每台计算机上安装ruby。

另一种方法是删除每个'commit'上的标题,并在每次'pull'时添加标题版本的标题,但我不知道如何做到这一点。

1 个答案:

答案 0 :(得分:3)

干净的内容过滤器驱动程序saw in the Pro Git Book是正确的解决方案,并不涉及ruby(它涉及您选择的任何脚本语言)

enter image description here

目标是,对于某种类型的文件:

  • 检测标题并保存副本(涂抹过滤器)
  • 将标题与保存的副本进行比较,如果有任何差异,请恢复该标题。

这样,git status不会因为标题已被更改而将文件视为已修改。