在我当前的项目中,我试图将git用于版本控制文本文件,这些文件文件由生成代码的软件使用。这本身不是问题,问题是每次我生成代码时,它都会自动更新此文件,例如生成代码的日期以及我的名字。
你可以想象它看起来像这样:
SomeHeader{
-SomeProperty : x
-NameOfUserThatGenerateCode: myName
-DateTimeCodeGenerated: 2013-07-23 06:28
-SomeOtherProperty: y
}
我想要的是告诉git说“如果名称和代码生成时间都要改变”(即:忽略存在更改),那就是告诉git说“没关系”,但是如果“SomeProperty”改为说“z”。
在第二种情况下,它将提交整个文件(使用更新的自动生成文件)。
有没有这样做?我认识到git在“文件”级别进行了更改,但是我希望可能存在某种类型的预处理挂钩,只有在git尝试比较文件更改时才能解决这个问题。
对于那些关心的人,这将使我能够正确控制rhapsody文件的版本。
答案 0 :(得分:2)
我建议:
clean
脚本,content filter driver,在.gitattributes
file中声明(详见Git Pro book)。
该脚本的目的是检测git add
:
请注意,内容过滤器驱动程序也可以自动执行“保留副本”部分,smudge
会自动激活git checkout
脚本。