如何获取强制推送的git用户名

如何获取强制推送的git用户名,git,bitbucket-server,Git,Bitbucket Server,最近,我的一位队友进行了强制推送git(远程回购),我们失去了大部分以前的提交历史,我惊讶地发现我们无法确定是谁做的 我用谷歌搜索了一下,但没有得到满意的答案。这里有人可以帮忙吗?由于某些原因,您无法确定: 如果不使用ssh密钥,您可以始终“伪造”名称和电子邮件 git commit -c user.name <faked name> -c user.email <fake email> ... git提交-c user.name-c user.email。。。

最近,我的一位队友进行了强制推送git(远程回购),我们失去了大部分以前的提交历史,我惊讶地发现我们无法确定是谁做的


我用谷歌搜索了一下,但没有得到满意的答案。这里有人可以帮忙吗?

由于某些原因,您无法确定:

  • 如果不使用ssh密钥,您可以始终“伪造”名称和电子邮件

     git commit -c user.name <faked name> -c user.email <fake email> ...
    
    git提交-c user.name-c user.email。。。
    
  • 如果用户有签出和旧提交以及强制推送,则提交的将是提交最后一次推送的用户(再次假设使用http/https)

  • 您可以做些什么来使用'git reflog'检查开发人员的本地存储库``

    --

    您可以尝试读取此处描述的隐藏日志

    同样,如果您使用ssh密钥,这将非常有用。否则就没用了


    git reflog
    将显示更新了
    标题的任何更改,在您的情况下,指出是谁更改并提交了错误的提交


    下次如何预防?
    安装此插件进行隐藏

    保护特定分支不受力推


    git stash
    git push-f
    是两件截然不同的事情。你在问什么?如何管理对git存储库的访问?嘘?然后查看SSH访问日志。外部服务通常提供某种审计。如果您使用内部服务,请确保有一些可用的备份。我们在我们的项目中使用来维护远程git repo。@泽塔:我想我们是通过SSH管理隐藏的git repo。它是由客户端管理的,所以我对日志没有任何可见性。在哪里可以找到日志。@JimitJoshi:那是本地地址。也许您正在使用(以前称为“隐藏”)?感谢CodeWizard,我们已经做了必要的工作来避免强制推送。我只是想知道是否有办法知道谁做了强制推送。我想你是对的,没有任何直接的方法来识别它。Reflog可以提供帮助。然而,在我的案例中,似乎客户端有人这样做了,因此无法要求调查他们的本地回购协议关于git的一些有用的对话,同样适用于人类。