有人使用了
git push --force
,但我无法从日志中看出是谁做的。有办法找出罪魁祸首吗?
2018 年 11 月更新:如果您要推送到 GitHub 等集中式 Git 存储库托管服务,然后您将能够看到谁强制推送了您的分支。但这只是因为 GitHub 选择在其 GUI 中显示该事件。
请参阅“在 GitHub 上查找强制推送的提交者”。
2013 年原始答案:
正如我在“分布式版本控制系统和企业 - 一个很好的组合?”中提到的,单独使用 Git 没有授权或身份验证。
您需要像Gitolite这样的授权层才能跟踪谁做了什么。 (Gitolite 带有自己的审计跟踪机制)。
但是如果你的仓库可以通过文件(或本地)协议访问,那么你就无法知道谁强制推送了。
如果您足够幸运能够使用GitHub或GitHub for Enterprise,您可以查看events REST API并检查谁/何时推送/删除到远程引用,例如log4j :