2014-10-06 150 views
0

我想删除所有以前的git提交一个特定的电子邮件,因为我提交了一个不正确的电子邮件,并已纠正它,但现在我有重复提交的一切,一个用正确的电子邮件和一个用不正确的电子邮件。 (根@ JTP)我曾尝试:通过电子邮件取消提交?

git filter-branch --commit-filter ' 
    if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ]; 
    then 
      skip_commit "[email protected]"; 
    else 
      git commit-tree "[email protected]"; 
    fi' HEAD 

,并得到这个回报:

致命的:模棱两可的说法“--commit过滤器” 未知的修订或路径不工作的树。使用' - '分隔修订路径

回答

0

你说你输入了git filter-branch --commit-filter ...然后git filter-branch -f \ --commit-filter。这是什么?虽然第一个可能会工作,但这个虚假的反斜杠\肯定会抛出一些东西。尝试删除它。

+0

试过了,现在正在变得'“文件名:需要合并”的所有内容 – 2014-10-06 14:45:47

+0

此外,差异似乎是不相关的,并有相同的结果... – 2014-10-06 14:52:56

+0

看看你得到的消息:'ambiguous argument'--commit -filter''。在'--'之前看到空格吗?这是因为你的反斜杠。由于之前的命令,您的存储库处于奇怪的状态,请重置它并再次运行(不带反斜杠)。 – remram 2014-10-06 18:27:31