如何在git历史记录中搜索字符串并更改所有出现的内容?

时间:2014-10-12 22:36:07

标签: git github

输入密码,例如......

我可以找到所有出现的" my_top_secret"用:

git grep my_top_secret $(git rev-list --all)

如何更改所有内容,例如使用--filter-branch--tree-filtermy_top_secret更改为not_top_secret_now

所以我真的删除了在此之后克隆回购的任何人的引用(或搜索github)。

1 个答案:

答案 0 :(得分:2)

我没有可以测试它的repo,但你基本上会在所有提交上运行一个过滤器分支,然后为每个提交搜索字符串并替换找到的任何实例。您可能需要修复sed引用。

git filter-branch --tree-filter 'git grep -n my_top_secret | xargs sed -i 's/my_top_secret/not_top_secret_now/g' ' -- --all