让 Git 忽略特定内容的更改

4
这对包含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

注意如果文件内容不变,如何使git忽略修改日期的更改(或类似内容)与此问题无关,我说的不是GIT忽略的修改时间。

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

答案可能比我的具体示例更通用(需要忽略任何需要忽略的内容),如果可能的话。答案可以以某种方式隐藏它(在有实际更改的情况下不永久忽略),或者在状态下检出先前版本,或者通过其他方式实现这个结果。


你觉得.gitignore文件对你有用吗?或者我理解错了,你只是想忽略文件的一部分? - pedrorijo91
@pedrorijo91 文件的一部分。就像问题所说,我不想永久忽略,以防其他“真正”的更改发生。 - kabanus
1个回答

3
这是一个需要使用 Git 内容过滤驱动器 来完成的工作,就像我在 "Can git ignore a specific line?" 中所示。

在你的情况下:

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

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


好的答案,我错过了类似的问题。 - kabanus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接