3

我在 git 存储库上工作了一段时间,并选择与其他人共享它。在将存储库公开之前,我已使用我的个人电子邮件地址进行提交,并尝试将其设置为另一个地址。我已经阅读了一些线程,例如SO 750172并且它适用于git log,但我仍然能够在 grep.git/logs/HEAD和中找到我的旧电子邮件.git/logs/refs/heads/master

有没有办法从那里删除它,也不会丢失我的历史记录?

目前只有一个存储库副本,如果这有所作为的话。

4

1 回答 1

4

reflogs 将包含指向旧版本提交的指针,从您重写历史记录以更改您的电子邮件地址之前开始,这就是旧电子邮件地址在其中仍然可见的原因。这些引用在您的存储库中是本地的,这些引用和它们指向的提交都不会被推送到远程存储库。因此,您已经清理了将要公开的历史记录。

如果您确实确定不需要返回并且还想清理 reflog,则可以运行:

git reflog expire --expire=now --all

但这将删除一个为了安全而存在的功能,并且绝对没有必要。

于 2012-11-10T17:40:20.303 回答