我有一个旧的CVS回购我已经转换为GIT,并且这样做我意识到我的一些用户名混乱...我可以使用.mailmap
修复的东西我也在使用 Atlassian Stash 以及一个允许我查看谁提交了什么内容的漂亮图表的插件。问题在于插件说明符号:
- 如何将两个用户合并为不同的电子邮件实际上是一个人?从Stash 2.5.0开始,您可以使用.mailmap文件 存储库来做到这一点。请注意,这仅影响提交 添加mailmap文件后。更改全局.mailmap文件 Git不会帮忙(详见此处)。
醇>
所以这意味着如果我添加我的.mailmap
文件,它对我3年的历史提交不会产生任何影响。
我相信我想要做的是重写提交历史记录以修改第一次提交并将.mailmap
文件添加到repo中,然后使用强制推送来覆盖存储在我的服务器上的内容。
.mailmap
文件然后替换我的远程仓库答案 0 :(得分:0)
如果您要重写所有历史记录,只需更改名称/电子邮件,而不是使用.mailmap。
如果要添加mailmap,您还可以使用filter-branch,但使用不同的形式。这就像你想要在不使用邮件地图的情况下重写电子邮件
git filter-branch --env-filter '
DUP_EMAIL="email_that_you_want_to_change"
CORRECT_EMAIL="email_you_would_rather_have"
if [ "$GIT_COMMITTER_EMAIL" = "$DUP_EMAIL" ]
then
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$DUP_EMAIL" ]
then
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags