使git忽略特定的内容更改

时间:2017-11-26 09:13:51

标签: git

这对包含latex编译文件的目录最有用。有时我可能会重新编译一个带有更新图像的文件(因此tex是相同的),并且生成的日志与之前的日志相同,并且日期更改。

我更希望GIT不会在状态中显示这些内容(行为可以是任何内容 - 例如每隔git status自动结帐原件。)

具体来说,当前差异是(差异是结尾的日期):

-This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2017.5.16)  8 OCT 2017 17:01
+This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2017.5.16)  22 NOV 2017 11:26

注意Make git ignore modification date changes if the content of the file stays the same(或类似)与此问题无关,我不是在谈论GIT忽略的修改时间。

是否可以通过一些git脚本来防止这些类型的更改出现在git状态?

答案应该比我的具体例子(任何需要忽略的内容)更通用,如果可能的话。答案可能会以某种方式隐藏它(在真正的更改情况下不会永久忽略)或检查状态上的先前版本或其他任何实现此结果的版本。

1 个答案:

答案 0 :(得分:1)

这是 git content filter driver 的工作,正如我在“Can git ignore a specific line?”中说明的那样。

在您的情况下,:

  • smudge脚本(仅用于编译文件夹中的latex文件)检测日期,并将其保存到以解析乳胶文件命名的私有忽略文件中。
    这是在git checkout
  • 上自动完成的
  • clear脚本将读取私有被忽略的文件内容以检索原始日期,并将更改日期替换为临时文件中读取的日期。 这是在git commit期间自动完成的,甚至是git diff,确保git忽略了这些差异!

内容过滤器驱动程序是忽略文件特定更改的方法。