git失败,git filter-branch上缺少ident

时间:2016-02-05 12:52:53

标签: git

在我决定最好不要包含它们之后,我正在尝试清除我在其中添加bower_components和node_modules目录的提交的存储库。按照这里的git-hub说明,我做了适当修改

git filter-branch --force --index-filter \
'git rm -r --cached --ignore-unmatch bower_components node_modules' \ 
--prune-empty --tag-name-filter cat -- --all

但是我收到了这个错误

fatal: empty ident name (for <@localhost>) not allowed

此问题的所有其他答案都涉及使用git config --global添加您的姓名和电子邮件地址。但是我很久以前就这么做了,并且已经工作多年了。所以在这种情况下答案是不正确的。

我怀疑它与git filter-branch为它正在做的事情创建自己的环境这一事实有关,但我不知道是什么或如何解决它。我尝试添加

 --env-filter 'export GIT_COMMITER_EMAIL=my@emailaddress' 

在--prune-empty标志之前,但它没有任何区别。

那我怎么能摆脱这个错误?

更新:我在我的存储库中发现了一些使用@localhost提交者详细信息的提交,我希望这与此有关。

1 个答案:

答案 0 :(得分:0)

我发现存储库中存在垃圾电子邮件提示,这是错误消息的原因。这很难摆脱,因为遵循这里的指示

https://help.github.com/articles/changing-author-info/

我最后仍然留下了不好的地址,因为有藏匿处和旧的模糊分支意味着坏地址没有被删除。但我最终成功了。

然后按照我上面提到的说明完成了这个过程。我的存储库大小已从615M降至214M