ada*_*m_0 1 git commit-message commit
显然我很久以前就错误输入了我的电子邮件,每当我设置git时,所以我的电子邮件在许多存储库中都是不正确的(我键入了一个0而不是一个o).我签署了所有的提交,因此几乎每次回购中的每一次提交都会说signed off by: <xxx0@foo.bar>而不是signed off by: <xxxo@foo.bar>.现在我不能只是切换我的电子邮件,所以我想切换这些提交消息.
我已经完成了git config --global user.email "xxxo@foo.bar",所以这不应该成为一个问题.
首先,是否有可能在这种大规模的情况下更改消息而不会使事情变得非常糟糕?我已经将这些更改推送到多个服务器,其他人已经撤消了这些更改.
第二,有没有办法在剧本中快速完成这项工作?即:
foreach(commit in log)
{
change "<xxx0@foo.bar>" to "<xxxo@foo.bar>"
}
Run Code Online (Sandbox Code Playgroud)
感谢所有帮助,谢谢!
如果变更集已经公开,而其他人已将其撤消,那么您不应该触摸它们.修改它们将改变它们的SHA,这将使其他人在皇家范围内搞砸(参见页面上的"从上游Rebase恢复"部分git rebase).
现在我已经提到了这一点,假设他们没有被公之于众.如果是这种情况,那么您想要用来修改它们的工具就是git filter-branch.