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/: