重写Git回购的第一次提交
我有一个旧的CVS repo,我已经转换成GIT,在这样做的过程中,我意识到我的一些用户名被弄乱了。。。我可以用重写Git回购的第一次提交,git,rebase,Git,Rebase,我有一个旧的CVS repo,我已经转换成GIT,在这样做的过程中,我意识到我的一些用户名被弄乱了。。。我可以用.mailmap修复一些问题,我还使用了Atlassian Stash和某个插件,该插件允许我查看谁犯了什么等的漂亮图表。问题是,根据插件说明: 如何合并两个具有不同电子邮件且实际上是一个人的用户?从Stash2.5.0开始,您可以在 存储库来执行此操作。请注意,这只影响所做的提交 添加邮件映射文件后。在中更改全局.mailmap文件 Git没有帮助(请参见此处的详细信息) 这意味着,
.mailmap
修复一些问题,我还使用了Atlassian Stash和某个插件,该插件允许我查看谁犯了什么等的漂亮图表。问题是,根据插件说明:
.mailmap
文件,它实际上不会对我3年的历史提交产生任何影响
我相信我要做的是重写提交历史,修改第一次提交,并将.mailmap
文件添加到repo中,然后使用强制推送来覆盖存储在我的服务器上的内容
- 这是正确的方法吗
- 为了添加
文件,然后替换远程repo,我必须运行哪些Git命令.mailmap
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