美文网首页Git使用
批量修改commit信息

批量修改commit信息

作者: Waschl | 来源:发表于2019-11-27 12:46 被阅读0次

背景信息:

在多设备开发的环境下,有的设备上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的名字。

相关文章

网友评论

    本文标题:批量修改commit信息

    本文链接:https://www.haomeiwen.com/subject/pakpwctx.html