如何从历史github提交中删除或更改您的git user.name?

How do you remove or change your git user.name from historical github commits?

本问题已经有最佳答案,请猛点这里访问。

我担心我的隐私,不希望我的真名出现在我的Github承诺中。我刚刚发现GitHub正在将我的user.name保存为贡献者和我的GitHub用户名。我现在已经更改了我的本地git user.name,这样以后提交就可以了。但现在我想知道我该如何返回并更改以前在Github上的回购中提交的user.name?


除了注释中建议的过滤器分支之外,交互式钢筋网是另一个选项。

使用交互式钢筋网

1
git rebase -i -p <some HEAD before all of your bad commits>

然后在rebase文件中将所有错误提交标记为"编辑"。然后,当git要求您修改每个提交时,请执行

1
 git commit --amend --author"New Author Name"

保存并关闭打开的编辑器,然后执行

1
git rebase --continue

继续使用钢筋。

添加--no-edit跳过打开编辑器,这样命令将:

1
2
git commit --amend --author"New Author Name" --no-edit && \
git rebase --continue

要同时更改作者和提交者:

1
 git -c user.name="New Author Name" -c [email protected] commit --amend --reset-author