批量修改commit信息

背景信息:

在多设备开发的环境下,有的设备上git conf信息配错了email地址,导致有的commit author的邮箱地址不正确。

此时应该首先将本机的gitconf信息修改成正确的信息,可以直接修改
vim ~/.gitconfig

方法1:

如果只对最近的一次commit修改:
git commit --amend --author="NewAuthor <[email protected]>"
然后从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" = "[email protected]" ]
then
    cn="xxx"
    cm="[email protected]"
fi
if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ]
then
    an="xxx"
    am="[email protected]"
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的名字。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章