Git リポジトリで追跡される自動生成された JavaScript ファイルがあります。問題は、コメントに (役に立たない) タイムスタンプが含まれていることです。これにより、些細なマージの競合が発生することがよくあります。これらの衝突は避けたいと思います。
.gitattributes と filter/smudge で解決策を見つけたと思いました。コミットまたはチェックアウト時にこのタイムスタンプ行がファイルから削除されるように、次のように設定しました。
.git属性:
<the file>.js filter=tsfilter
<the file>.js smudge=tsfilter
.git/config:
[filter "tsfilter"]
clean = perl -pe \"s/\\/\\/.*<the pattern>.*$//\"
smudge = perl -pe \"s/\\/\\/.*<the pattern>.*$//\"
これにより、マージの競合が解消されたように見えますが、このファイルが常に変更されたままになっているという別の問題が発生しました。つまり、「ステータス」は、ローカル (事前にフィルター処理された) コピーにタイムスタンプ行が含まれているため (ただし、コミットされたファイルには含まれていない)、変更済みとして表示されます。
マージの競合を回避するだけでなく、ファイルのこの部分へのローカルの変更を非表示にするより良い方法はありますか?