背景信息:
在多设备开发的环境下,有的设备上git conf信息配错了email地址,导致有的commit author的邮箱地址不正确。
此时应该首先将本机的gitconf信息修改成正确的信息,可以直接修改
vim ~/.gitconfig
方法1:
如果只对最近的一次commit修改:
git commit --amend --author="NewAuthor <xxx@xxx.com>"
然后从git log查看可发现Email信息已修正。
方法2:
批量修改
在所使用的文件夹下新建一个 git_edit_commit.sh文件,文件内容如下。
#!/bin/sh
git filter-branch --env-filter '
an="$GIT_AUTHOR_NAME"
am="$GIT_AUTHOR_EMAIL"
cn="$GIT_COMMITTER_NAME"
cm="$GIT_COMMITTER_EMAIL"
if [ "$GIT_COMMITTER_EMAIL" = "xxx@xxx.com" ]
then
cn="xxx"
cm="xxx@xxx.com"
fi
if [ "$GIT_AUTHOR_EMAIL" = "xxx@xxx.com" ]
then
an="xxx"
am="xxx@xxx.com"
fi
export GIT_AUTHOR_NAME="$an"
export GIT_AUTHOR_EMAIL="$am"
export GIT_COMMITTER_NAME="$cn"
export GIT_COMMITTER_EMAIL="$cm"
'
然后在终端中执行 bash git_edit_commit.sh
, 会自动开始修正历史commit信息。
同样可以用git log确认修改是否成功,如果需要再次修改,首先需要清除上次的备份
git update-ref -d refs/original/refs/heads/xxx
xxx为branch的名字。
网友评论