git filter-repo
A versatile tool for rewriting Git history. See also:
bfg
. More information: https://github.com/newren/git-filter-repo.
- Replace a sensitive string in all files:
git filter-repo --replace-text <(echo '{{find}}==>{{replacement}}')
- Extract a single folder, keeping history:
git filter-repo --path {{path/to/folder}}
- Remove a single folder, keeping history:
git filter-repo --path {{path/to/folder}} --invert-paths
- Move everything from sub-folder one level up:
git filter-repo --path-rename {{path/to/folder/:}}