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

时间:2015-02-22 23:22:58

标签: git git-filter-branch

来自docs --index-filter

  

...类似于树过滤器,但不检查树,这使得它更快。

所以,通常我使用--index-filter。也就是说,我认为这些不仅仅是多余的选择。 --tree-filter无法实现的--index-filter可以实现的一个用例是什么?

1 个答案:

答案 0 :(得分:1)

你可以针对“真实的”'运行任意shell命令。文件树,这是你用--tree-filter得到的,而你为--index-filter运行的任何命令都必须能够使用Git索引本身 - 即非常Git感知。

因此,举例来说,您可以运行sed--tree-filter替换文件内容(例如从Git历史记录中删除密码 - 这样会更好{39} the BFG在那个),但没有一个常规的文件系统文件树,你可以减少到一些相当令人印象深刻的Git-fu和管道,以使相同的事情直接发生在索引上(读取相关blob的内容,修改索引与根据需要新的blob。)