Ⅰ Git如何刪除歷史記錄中的大文件詳解
步驟一:從你的資料庫中清除文件
以Windows下為例(Linux類似), 打開項目的Git Bash,使用命令:
$ git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch path-to-your-remove-file' --prune-empty --tag-name-filter cat -- --all
其中,path-to-your-remove-file就是你要刪除的文件的相對路徑(相對於git倉庫的跟目錄), 替換成你要刪除的文件即可. 注意一點,這里的文件或文件夾,都不能以 '/' 開頭,否則文件或文件夾會被認為是從 git 的安裝目錄開始。
如果你要刪除的目標不是文件,而是文件夾,那麼請在 `git rm --cached' 命令後面添加-r命令,表示遞歸的刪除(子)文件夾和文件夾下的文件,類似於 `rm -rf` 命令。
此外,如果你要刪除的文件很多, 可以寫進一個.sh文件批量執行, 如果文件或路徑里有中文, 由於MinGW或CygWin對中文路徑設置比較麻煩, 你可以使用通配符*號, 例如: sound/music_*.mp3, 這樣就把sound目錄下以music_開頭的mp3文件都刪除了.
例如這樣, 新建一個bash腳本文件,del-music-mp3.sh:
注:綠色字部分是命令執行後的結果.