40

有人使用过git push --force,但我无法从日志中分辨出是谁做的。有没有办法确定罪魁祸首?

4

2 回答 2

59

2018 年 11 月更新:如果您要推送到 GitHub 等集中式 Git 存储库托管服务,那么您将能够看到谁强制推送了您的分支。但这仅仅是因为 GitHub 选择在其 GUI 中显示该事件。

https://pbs.twimg.com/media/DsJIVxtU4AAreMW.jpg:large

更多信息请参见“在 GitHub 上查找强制推送的提交者”。


2013年的原始答案:

正如我在“分布式版本控制系统和企业 - 一个很好的组合? ”中提到的,仅使用 Git 没有授权或身份验证。

您需要像Gitolite这样的授权层来跟踪谁做了什么。(Gitolite 自带审计跟踪机制)。

但是,如果您的 repo 可以通过文件(或本地)协议访问,那么您将无法知道是谁强制推送的。

测谎器 (来自motivealgenerator.com维基百科

于 2013-02-22T18:02:38.557 回答
1

如果您有幸使用GitHubGitHub for Enterprise,您可以查看事件REST API 并检查谁/何时推送/删除到远程引用,例如 log4j:

https://api.github.com/repos/apache/log4j/events

于 2018-01-05T09:03:01.427 回答