使用git清洁过滤器进行图像压缩
问题描述:
最近当我读到git clean/smudge
过滤器时,我认为这是一种自动压缩图像的好方法,我在推动之前添加&提交到我的回购。使用git清洁过滤器进行图像压缩
的问题是,我只能有干净的过滤器,而不是逆转涂抹过滤器将图像解压缩到原来的状态。
但即使我能,这将是击败预压缩图像的点摆在首位。
这是我.gitconfig
:
[filter "compress-jpg"]
clean = gm convert -compress JPEG - -
[filter "compress-png"]
clean = gm convert - -
这是我.gitattributes
:
*.jpeg filter=compress-jpg
*.jpg filter=compress-jpg
*.png filter=compress-png
令我惊讶,我后来发现的git认为所有文件的结账后已被修改。
这种问题的解决方案是什么?
git是干净的还是污迹只能用于完美可逆的东西?
有没有什么办法让git的压缩并存储到索引之前更换我在工作树中的文件?
这样的话,git会不会在文件被检出后修改。
答
您需要将文件名传递给脚本。
既然你不传递文件名,它处理所有的文件。
例如:
git config --global filter.<name>.clean script_file %file_name
在你的情况,你可能要设置的文件扩展插件的.gitattributes
为smudge/clean
。
Read here
如何配置,并将其设置为支持您想要的文件类型。
我已经设置了'.gitattributes'。但是你是否仅仅通过改变clean命令来使用'%file_name'就可以工作?它是如何工作的?它如何处理“git认为它是另一个文件”? – CMCDragonkai
我还以为这些命令是为了管道。因此在我干净的命令中使用' - -'。有必要将'gm'制作成管道。 – CMCDragonkai
如果您希望处理所有图像文件,请将其设置在.gitattributes'* .jpg filter_name'或'* .jpg filter = filter_name'中。 – CodeWizard