Git 修改已提交 commit 的作者信息
问题:
在不同电脑之间不同的 git 邮箱账号,结果 commit 的时候忘记修改配置导致 commit 的名称和邮箱不对
解决方法:
修改Git配置
查看配置:
$ git config user.name
$ git config user.email
修改配置:
$ git config --global user.name "name"
$ git config --global user.email "email"
但是此方法只能补救以后的commit起效,如果想修改之前的作者信息,Github 给出了官方指南:Changing author info
修复git历史提交信息
To change the name and/or email address recorded in existing commits, you must rewrite the entire history of your Git repository.
为了修改 commit 的作者邮箱地址,你必须重写整个 git 仓库历史
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.
警告: 这个操作会破坏你的仓库历史, 如果你和别人在协同开发这个仓库,重写已发布的历史记录是一个不好的操作。建议只在紧急情况操作
操作步骤:
1.打开bash
2.Create a fresh, bare clone of your repository: (新建一个全新的仓库信息:)
git clone --bare https://github.com/user/repo.git
cd repo.git
3.Copy and paste the script, replacing the following variables based on the information you gathered: (在终端复制并粘贴以下脚本,并将以下的变量修改为你需要的)
**OLD_EMAIL**
**CORRECT_NAME**
**CORRECT_EMAIL**
脚本信息
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="[email protected]"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="[email protected]"
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
4.把脚本文件拖进入repo.git仓库里
5.给repo.git文件夹权限,chmod 777 filepath
6.Press Enter to run the script.(按下 enter 键来运行这个脚本
7.Review the new Git history for errors.(校对新的 git 仓库历史)
8.Push the corrected history to GitHub:(将修改后的仓库历史推到远程)
git push --force --tags origin 'refs/heads/*'
9.Clean up the temporary clone: (删除这个仓库)
cd ..
rm -rf repo.git
上一篇: mongodb 配置
下一篇: java 进制转换
推荐阅读
-
Github:07---git之(git的回溯(git reset)、合并冲突、修改提交信息、压缩历史(git rebase))
-
Git 修改已提交 commit 的作者信息
-
git 修改所有提交的作者信息
-
Git修改commit的作者信息
-
批量修改git commit的作者信息
-
git修改历史提交信息(包含作者信息)
-
Git commit --amend 修改提交信息操作
-
git push撤销、git commit 撤销、git add撤销、修改git提交信息
-
Github:07---git之(git的回溯(git reset)、合并冲突、修改提交信息、压缩历史(git rebase))
-
Git commit --amend 修改提交信息操作