使用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 

在你的情况,你可能要设置的文件扩展插件的.gitattributessmudge/clean

Read here如何配置,并将其设置为支持您想要的文件类型。

+0

我已经设置了'.gitattributes'。但是你是否仅仅通过改变clean命令来使用'%file_name'就可以工作?它是如何工作的?它如何处理“git认为它是另一个文件”? – CMCDragonkai

+0

我还以为这些命令是为了管道。因此在我干净的命令中使用' - -'。有必要将'gm'制作成管道。 – CMCDragonkai

+0

如果您希望处理所有图像文件,请将其设置在.gitattributes'* .jpg filter_name'或'* .jpg filter = filter_name'中。 – CodeWizard