我们有一个自动生成的 javascript 文件,该文件在我们的 git 存储库中进行跟踪。问题是它在评论中包含一个(无用的)时间戳,这通常会为我们造成微不足道的合并冲突。我想避免这些冲突。
我以为我找到了 .gitattributes 和 filter/smudge 的解决方案。我按以下方式设置它,以便在提交或签出时从文件中删除此时间戳行:
.git 属性:
<the file>.js filter=tsfilter
<the file>.js smudge=tsfilter
.git/配置:
[filter "tsfilter"]
clean = perl -pe \"s/\\/\\/.*<the pattern>.*$//\"
smudge = perl -pe \"s/\\/\\/.*<the pattern>.*$//\"
虽然这似乎消除了合并冲突,但它引入了另一个烦恼,因为该文件现在仍处于不断修改的状态。也就是说,“状态”仍然显示它已修改,因为本地(预过滤)副本包含时间戳行(但提交的文件不包含)。
有没有更好的方法来解决这个问题,既可以避免合并冲突,又可以隐藏对文件这一部分的本地更改?