如何还原';git过滤器分支-f--env过滤器';

如何还原';git过滤器分支-f--env过滤器';,git,commit,revert,git-filter-branch,Git,Commit,Revert,Git Filter Branch,对于git,我是个新手,通常我只执行git提交、拉和推的命令。 最近注意到我的提交设置为默认名称和电子邮件,并希望更改它。 我愚蠢地运行了我在某个地方的帖子中发现的: git filter-branch -f --env-filter "GIT_AUTHOR_NAME='Newname'; GIT_AUTHOR_EMAIL='newemail'; GIT_COMMITER_NAME='Newname'; GIT_COMMITTER_EMAIL='newemail';" HEAD 我原以为这只

对于git,我是个新手,通常我只执行git提交、拉和推的命令。 最近注意到我的提交设置为默认名称和电子邮件,并希望更改它。 我愚蠢地运行了我在某个地方的帖子中发现的:

git filter-branch -f --env-filter "GIT_AUTHOR_NAME='Newname'; GIT_AUTHOR_EMAIL='newemail'; 
GIT_COMMITER_NAME='Newname'; GIT_COMMITTER_EMAIL='newemail';" HEAD
我原以为这只会改变我的提交,但相反,它改变了回购协议中的所有提交,让我的姓名和电子邮件。当然,为了继续我的“沉默”,我推动了这些改变

此外,我似乎丢失了历史记录,github上的所有提交似乎也有一个重复条目。一个写着我的名字和电子邮件,还有原来的那个


有没有办法扭转这种局面?可能使用上一次拉动的副本来推送原始信息?

如果在执行“过滤分支”命令后,您还没有做任何清理松散对象的工作,您可以重置主分支(假设您发出该命令时头是主分支):


如果尚未清理,则可以使用以下命令重置分支:
git reset--hard refs/original/master
,这将在尝试之前重新加载所有原始文件,然后执行以下操作:


git filter branch-f--env filter“git_AUTHOR_NAME='Newname';git_AUTHOR_EMAIL='newemail';git_COMMITTER_NAME='Newname';git_COMMITTER_EMAIL='newemail';”--tag NAME filter cat--all”
一位同事与一些git专业人士进行了交谈,似乎上一份拷贝的“git push-f”解决了这个问题。此外,我还需要对我的副本进行git拉取——重新设置基址


谢谢你们的帮助。

你们检查过这张了吗?它似乎是重复的。或多或少都是一样的。是的,尽管我也想还原这些提交的信息,而不仅仅是删除重复的内容。谢谢
git reset --hard refs/original/master