问题
我们在使用github提交时,有可能会出现,提交的邮箱等不是自己的,设置错误。
这时需要修改历史提交记录
新建仓库信息
1 | git clone --bare https://github.com/用户名/库名.git |
这里的repo.git是已经clone下来的
使用脚本
将下面脚本中的中文替换成自己的信息,然后把脚本复制到bash中,回车1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="旧的邮箱
CORRECT_NAME="正确的名字"
CORRECT_EMAIL="正确的邮箱"
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
提交记录
1 | git push --force --tags origin 'refs/heads/*' |
注意
如果提交版本时,出现以下问题:1
error:failed to push some refs to ...
这个问题是因为远程库与本地库不一致造成的,那么我们把远程库同步到本地库就可以了1
git pull --rebase origin master
这条指令的意思是把远程库中的更新合并到本地库中,–rebase的作用是取消掉本地库中刚刚的commit,
并把他们接到更新后的版本库之中。