如何修改Github上提交的错误用户地址和姓名
Changing author info
To change the name and/or email address recorded in existing commits, you must rewrite the entire history of your Git repository.
Warning: This action is destructive to your repository's history. If you're collaborating on a repository with others, it's considered bad practice to rewrite published history. You should only do this in an emergency.
Changing the Git history of your repository using a script
We've created a script that will change any commits that previously had the old email address in its author or committer fields to use the correct name and email address.
Note: Running this script rewrites history for all repository collaborators. After completing these steps, any person with forks or clones must fetch the rewritten history and rebase any local changes into the rewritten history.
Before running this script, you'll need:
- The old email address that appears in the author/committer fields that you want to change
-
The correct name and email address that you would like such commits to be attributed to
-
Open Terminal (for Mac users) or the command prompt (for Windows and Linux users).
-
Create a fresh, bare clone of your repository:
git clone --bare https://github.com/user/repo.git cd repo.git
-
Copy and paste the script, replacing the following variables based on the information you gathered:
OLD_EMAIL
CORRECT_NAME
CORRECT_EMAIL
12345678910111213141516171819#!/bin/sh
git filter-branch --
env
-filter '
OLD_EMAIL=
"your-old-email@example.com"
CORRECT_NAME=
"Your Correct Name"
CORRECT_EMAIL=
"your-correct-email@example.com"
if
[
"$GIT_COMMITTER_EMAIL"
=
"$OLD_EMAIL"
]
then
export
GIT_COMMITTER_NAME=
"$CORRECT_NAME"
export
GIT_COMMITTER_EMAIL=
"$CORRECT_EMAIL"
fi
if
[
"$GIT_AUTHOR_EMAIL"
=
"$OLD_EMAIL"
]
then
export
GIT_AUTHOR_NAME=
"$CORRECT_NAME"
export
GIT_AUTHOR_EMAIL=
"$CORRECT_EMAIL"
fi
' --tag-name-filter
cat
-- --branches --tags
- Press Enter to run the script.
- Review the new Git history for errors.
-
Push the corrected history to GitHub:
git push --force --tags origin 'refs/heads/*'
-
Clean up the temporary clone:
cd .. rm -rf repo.git
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现