如果你想修改本地提交的用户名和邮箱,可以按照以下方法操作:
1. 修改全局(所有仓库)用户名和邮箱
如果你想修改 全局 Git 配置(影响所有仓库),可以使用:
1 2 |
git config --global user.name "你的新用户名" git config --global user.email "你的新邮箱" |
示例
1 2 |
git config --global user.name "Millie" git config --global user.email "millie@example.com" |
✅ 之后的所有提交都会使用这个新的用户名和邮箱。
2. 修改当前仓库的用户名和邮箱
如果你只想修改当前 Git 仓库的用户名和邮箱,可以用:
1 2 |
git config user.name "你的新用户名" git config user.email "你的新邮箱" |
示例
1 2 |
git config user.name "Millie" git config user.email "millie@example.com" |
✅ 这只会影响当前 Git 仓库,不会影响其他项目。
3. 修改已经提交的记录
如果你已经提交了代码,但提交时的用户名或邮箱错误,可以用 git commit –amend 修改最近的提交信息。
(1)修改最近的一次提交
1 |
git commit --amend --author="新的用户名 <新的邮箱>" |
示例
1 |
git commit --amend --author="Millie <millie@example.com>" |
然后:
1 |
git push --force |
⚠️ 注意:–force 可能会覆盖远程提交,谨慎使用!
(2)修改所有历史提交的用户名和邮箱
如果你需要修改所有历史提交的用户名或邮箱,可以使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
git filter-branch --env-filter ' OLD_EMAIL="旧的邮箱" NEW_NAME="新的用户名" NEW_EMAIL="新的邮箱" if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]; then GIT_COMMITTER_NAME="$NEW_NAME" GIT_COMMITTER_EMAIL="$NEW_EMAIL" fi if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]; then GIT_AUTHOR_NAME="$NEW_NAME" GIT_AUTHOR_EMAIL="$NEW_EMAIL" fi ' --tag-name-filter cat -- --branches --tags |
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
git filter-branch --env-filter ' OLD_EMAIL="old@example.com" NEW_NAME="Millie" NEW_EMAIL="millie@example.com" if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]; then GIT_COMMITTER_NAME="$NEW_NAME" GIT_COMMITTER_EMAIL="$NEW_EMAIL" fi if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]; then GIT_AUTHOR_NAME="$NEW_NAME" GIT_AUTHOR_EMAIL="$NEW_EMAIL" fi ' --tag-name-filter cat -- --branches --tags |
然后强制推送到远程:
1 |
git push --force --all |
⚠️ 注意:这会重写历史提交,不要在多人合作的项目里使用!
4. 查看当前 Git 配置
如果你不确定当前 Git 使用的用户名和邮箱,可以运行:
1 2 |
git config --global --list # 查看全局 Git 配置 git config --local --list # 查看当前仓库的 Git 配置 |
你也可以单独检查某一项:
1 2 |
git config user.name # 查看当前仓库用户名 git config user.email # 查看当前仓库邮箱 |
总结
需求 | 命令 |
---|---|
修改全局 Git 用户名和邮箱 | git config –global user.name “新用户名”git config –global user.email “新邮箱” |
修改当前仓库的用户名和邮箱 | git config user.name “新用户名”git config user.email “新邮箱” |
修改最近一次提交的用户名和邮箱 | git commit –amend –author=”新用户名 <新邮箱>” |
修改所有历史提交的用户名和邮箱 | git filter-branch –env-filter ‘…’ |
查看当前 Git 配置 | git config –global –list git config –local –list |
如果你只是想修改下次提交的用户名和邮箱,修改 Git 配置(方法 1 或 2)就够了;
如果已经提交了错误的用户名或邮箱,需要用 –amend 或 filter-branch 来修改。