新增:《修改Git所有提交记录中的作者和邮箱》

This commit is contained in:
2022-07-24 13:38:14 +08:00
parent 43723a1de8
commit c12116c0ad
2 changed files with 53 additions and 1 deletions

View File

@@ -48,7 +48,7 @@ const { theme, frontmatter } = useData()
}
.meta-icon {
position: relative;
top: 1.3px;
top: 1.36px;
}
.meta-icon svg {
height: 14px;

View File

@@ -0,0 +1,52 @@
---
title: 修改Git所有提交记录中的作者和邮箱
author: 查尔斯
date: 2022/03/27 13:00
categories:
- 杂碎逆袭史
tags:
- Git
---
# 修改Git所有提交记录中的作者和邮箱
## 前言
**C** 上一篇,笔者介绍了怎么修改 Git 最后一次提交的作者和邮箱信息。那如果你是已经提交了很多次的记录,难道一个个的回退过去修改吗?显然不可能,所以本篇笔者带着大家认识一下如何批量修改 Git 提交记录中的作者和邮箱信息。
## 问题解决
解决方法其实就是编写一个脚本来进行批量替换。
1. 新建一个 sh / bat 格式的脚本文件(如果你是在 cmd 中执行,那就用 bat 格式,如果是在 git bash 中执行就用 sh
2. 复制下方脚本内容到脚本文件中,然后编辑替换好错误邮箱、正确作者和邮箱(如果是在 cmd 中执行,#!/bin/sh 就替换为 #!/bin/bat
```shell
#!/bin/sh
git filter-branch --env-filter '
WRONG_EMAIL="错误的邮箱"
NEW_NAME="正确的作者名"
NEW_EMAIL="正确的邮箱"
if [ "$GIT_COMMITTER_EMAIL" = "$WRONG_EMAIL" ]
then
export GIT_COMMITTER_NAME="$NEW_NAME"
export GIT_COMMITTER_EMAIL="$NEW_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$WRONG_EMAIL" ]
then
export GIT_AUTHOR_NAME="$NEW_NAME"
export GIT_AUTHOR_EMAIL="$NEW_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags
```
3. 保存脚本
4. 将脚本文件放到要批量修改提交记录的 Git 仓库中(根目录就行)
1. 执行脚本
随后你就会看到,先是提示一个 warn 警告,然后它会一条条的修改以往提交记录,如果错误的提交比较多,那就耐心等一会儿吧。