修改了旧提交的作者信息,每个提交都是重复的

时间:2013-12-23 03:27:51

标签: git

我使用脚本here修改了回购邮件中所有旧提交的作者姓名:

#!/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" = "your@email.to.match" ]
then
cn="Your New Committer Name"
cm="Your New Committer Email"
fi
if [ "$GIT_AUTHOR_EMAIL" = "your@email.to.match" ]
then
an="Your New Author Name"
am="Your New Author Email"
fi

export GIT_AUTHOR_NAME="$an"
export GIT_AUTHOR_EMAIL="$am"
export GIT_COMMITTER_NAME="$cn"
export GIT_COMMITTER_EMAIL="$cm"
'

该脚本有效,但它创建了每个提交的副本 - 所以现在每次提交都有一个提交错误的作者,一个提交正确的作者。有没有办法用错误的作者删除所有提交?

谢谢!

1 个答案:

答案 0 :(得分:0)

这是git filter-branch的正常行为。由于无法修改历史记录,因此会根据旧分支创建新分支(即备用历史记录)。

可能,您想要丢弃旧分支。在与协作者合作时,您应该了解problems with rewriting history,如git手册中所述。