git-filter-repo https://github.com/newren/git-filter-repoが推奨されるようになりました。私はそれを次のように使用しました:
PS C:\repository> git filter-repo --commit-callback '
>> msg = commit.message.decode(\"utf-8\")
>> newmsg = msg.replace(\"old string\", \"new string\")
>> commit.message = newmsg.encode(\"utf-8\")
>> ' --force
New history written in 328.30 seconds; now repacking/cleaning...
Repacking your repo and cleaning out old unneeded objects
HEAD is now at 087f91945a blah blah
Enumerating objects: 346091, done.
Counting objects: 100% (346091/346091), done.
Delta compression using up to 8 threads
Compressing objects: 100% (82068/82068), done.
Writing objects: 100% (346091/346091), done.
Total 346091 (delta 259364), reused 346030 (delta 259303), pack-reused 0
Completely finished after 443.37 seconds.
PS C:\repository>
おそらく、powershell の余分なものをコピーしたくないので、ここにコマンドを示します。
git filter-repo --commit-callback '
msg = commit.message.decode(\"utf-8\")
newmsg = msg.replace(\"old string\", \"new string\")
commit.message = newmsg.encode(\"utf-8\")
' --force
すべてのブランチをヒットしたい場合は、使用しないでください--refs HEAD
。使用したくない場合は--force
、クリーンで実行できますgit clone --no-checkout
。これで始めました:https://blog.kawzeg.com/2019/12/19/git-filter-repo.html