如果超过一组特定的行更改,让git只识别文件已更改?

时间:2013-07-24 01:36:54

标签: git rhapsody

在我当前的项目中,我试图将git用于版本控制文本文件,这些文件文件由生成代码的软件使用。这本身不是问题,问题是每次我生成代码时,它都会自动更新此文件,例如生成代码的日期以及我的名字。

你可以想象它看起来像这样:

SomeHeader{
  -SomeProperty : x
  -NameOfUserThatGenerateCode: myName
  -DateTimeCodeGenerated: 2013-07-23 06:28
  -SomeOtherProperty: y
}

我想要的是告诉git说“如果名称和代码生成时间都要改变”(即:忽略存在更改),那就是告诉git说“没关系”,但是如果“SomeProperty”改为说“z”。

在第二种情况下,它将提交整个文件(使用更新的自动生成文件)。

有没有这样做?我认识到git在“文件”级别进行了更改,但是我希望可能存在某种类型的预处理挂钩,只有在git尝试比较文件更改时才能解决这个问题。

对于那些关心的人,这将使我能够正确控制rhapsody文件的版本。

1 个答案:

答案 0 :(得分:2)

我建议:

http://git-scm.com/figures/18333fig0703-tn.png

该脚本的目的是检测git add

  • 'SomeHeader'属性文件的内容
  • 如果该文件的副本以您需要保留的方式发生更改(在这种情况下,您使用该副本的内容覆盖版本化文件)
  • 如果该文件的副本没有显着变化,在这种情况下,您不会修改实际的属性文件。

请注意,内容过滤器驱动程序也可以自动执行“保留副本”部分,smudge会自动激活git checkout脚本。