git-filter-repo

A versatile tool for rewriting Git history.

TLDR

Replace a sensitive string in all files

$ git filter-repo --replace-text <(echo '[find]==>[replacement]')
copy


Extract a single folder, keeping history
$ git-filter-repo --path [path/to/folder]
copy


Remove a single folder, keeping history
$ git-filter-repo --path [path/to/folder] --invert-paths
copy


Move everything from sub-folder one level up
$ git-filter-repo --path-rename [path/to/folder/:]
copy

Copied to clipboard