我學「樹」,並從該aritcle「指標」:Learning Git Internals by Example「git filter-branch」中「--tree-filter」和「--index-filter」有什麼區別?
但是當它來到「混帳過濾分支」命令,我不知道什麼是「--tree過濾器之間的差異「和」--index-filter「。
我學「樹」,並從該aritcle「指標」:Learning Git Internals by Example「git filter-branch」中「--tree-filter」和「--index-filter」有什麼區別?
但是當它來到「混帳過濾分支」命令,我不知道什麼是「--tree過濾器之間的差異「和」--index-filter「。
簡短的版本是--tree-filter
檢查每個提交到一個臨時目錄,運行你的過濾器命令,並建立一個新的提交,從現在在臨時目錄中的任何東西;而--index-filter
將每個提交都複製到索引中,運行您的過濾器命令,並從索引中現在的任何內容構建一個新的提交。
將提交複製到索引的速度比檢出提交的速度快了很多。從索引構建提交比從目錄構建提交更快。因此,使用索引過濾器比使用樹型過濾器要快得多。儘管如此,編寫腳本並不容易。
確切的速度差異取決於你的臨時目錄:在內存中的文件系統是比上-SSD文件系統比對紡絲媒體快了快了,所以您將獲得更多,如果您使用的是旋轉介質,而不是將樹型過濾器指向內存中的文件系統。但即使如此,索引過濾器仍然更快。
在實際的磁盤上,我見過大約100個因子(因此需要2分鐘的索引過濾器轉換爲需要3個小時以上的樹過濾器)。
您是否閱讀過[documentation](https://git-scm.com/docs/git-filter-branch)? –
@TimBiegeleisen我這樣做,但我發現這些Git概念很難理解...... – GoTop