我有一个分支,几乎所有提交都有一个错误的电子邮件"mywrong@email.com"
,我想将该电子邮件更改为我当前的电子邮件"mynew@email.com"
。
在搜索时,我发现了这个:
git filter-branch --commit-filter 'if [ "$GIT_COMMITTER_EMAIL" = "mywrong@email.com" ];
then
export GIT_AUTHOR_NAME="Sandrina Pereira";
export GIT_AUTHOR_EMAIL=mynew@email.com;
export GIT_COMMITTER_NAME="Sandrina Pereira";
export GIT_COMMITTER_EMAIL=mynew@email.com;
fi; git commit-tree "$@"'
请参阅此处 COMMITTER 和 AUTHOR 之间的区别。真正更改提交身份验证很重要,否则机智会显示在原始提交mynew
下进行了提交。oldnew
在这里,我想更改作者和提交者。
然后我做了git commit -am "change author"
,git pull
并且git push
。
问题是现在我所有的提交都是重复的,你可以在这里看到
我搜索了如何删除这些提交,我发现了这个:
git filter-branch --commit-filter '
if [ "$GIT_AUTHOR_EMAIL" = "mywrong@email.com" ];
then skip_commit "$@";
else git commit-tree "$@";
fi' HEAD
但是我还没有尝试...我该怎么办?
下次我想替换电子邮件提交时,避免这种混乱的正确命令是什么?