设置全局的用户名和邮箱
Git刚刚安装上的时候通过关键字global设置全局的用户名和密码。
git config --global user.name 'gaopeng'
git config --global user.email 'gaopeng62524@126.com'
设置当前项目的用户名和邮箱
有些项目希望用另外一个邮箱,可以使用下面的方式设置,不带global的设置只对当前项目有效。
git config user.name 'gaopeng'
git config user.email '897710242@qq.com'
可以通过下面两行命令查看设置的区别
# 获取全局的邮箱设置
git config --global user.email
# 获取当前项目的邮箱设置
git config user.email
修改已提交的commit中的邮箱
有的时候提交了才发现邮箱写错了,这时候可以通过下面的方式来修改。
创建change_email.sh,内容如下
#!/bin/sh
git filter-branch -f --env-filter '
# 定义常量
OLD_EMAIL="gaopeng62524@126.com"
# 不仅可以修改邮箱,还可以修改用户名
CORRECT_NAME="gaopeng"
CORRECT_EMAIL="897710242@qq.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
给这个文件加上执行权限chmod +x ./change_email.sh
,然后执行这个文件。
查看log,已经都改成新的邮箱了。最后一步就是推送到远端git push --force --all
。