Git 需要树过滤器而不是索引过滤器的用例是什么?

Git 需要树过滤器而不是索引过滤器的用例是什么?,git,git-filter-branch,Git,Git Filter Branch,从--索引过滤器中 …类似于树过滤器,但不签出树,这使其速度更快 所以,我通常使用——索引过滤器。也就是说,我认为这些不仅仅是多余的选项。--tree filter可以完成--index filter无法完成的一个用例是什么?您可以对“真实”文件树运行任意shell命令,这就是使用--tree filter得到的结果,而为--index过滤器运行的任何命令都必须能够与Git索引本身一起工作,即非常了解Git 因此,例如,您可以运行sed用--tree filter替换文件内容(例如,从Git h

--索引过滤器中

…类似于树过滤器,但不签出树,这使其速度更快


所以,我通常使用
——索引过滤器
。也就是说,我认为这些不仅仅是多余的选项。
--tree filter
可以完成
--index filter
无法完成的一个用例是什么?

您可以对“真实”文件树运行任意shell命令,这就是使用
--tree filter
得到的结果,而为
--index过滤器运行的任何命令都必须能够与Git索引本身一起工作,即非常了解Git

因此,例如,您可以运行
sed
--tree filter
替换文件内容(例如,从Git history-tho中删除密码更好),但不需要常规的文件系统文件树,您将被简化为一些相当令人印象深刻的Git fu和piping,以便直接针对索引执行相同的操作(读取相关blob的内容,根据需要使用新blob修改索引)