批量修改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的名字。

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