【发布时间】:2013-02-08 07:27:42
【问题描述】:
有人使用了git push --force,但我无法从日志中看出是谁做的。有没有办法确定罪魁祸首?
【问题讨论】:
-
您可以让团队的每个成员进行测谎。没有告诉他们,如果罪魁祸首不挺身而出,每个人都将不得不在午餐时间工作一周
标签: git
有人使用了git push --force,但我无法从日志中看出是谁做的。有没有办法确定罪魁祸首?
【问题讨论】:
标签: git
2018 年 11 月更新:如果您要推送到 GitHub 等集中式 Git 存储库托管服务,那么您将能够看到谁强行推送了您的分支。但这仅仅是因为 GitHub 选择在其 GUI 中显示该事件。
在“Find committer of a force push on GitHub”查看更多信息。
2013 年原始答案:
正如我在“Distributed Version Control Systems and the Enterprise - a Good mix?”中提到的,仅使用 Git 没有授权或身份验证。
您需要authorization layer (如Gitolite)来跟踪谁做了什么。 (Gitolite 自带审计跟踪机制)。
但是如果你的 repo 可以通过file (or local) protocol 访问,那么你就无法知道是谁强制推送了。
【讨论】:
push --force 可以从任意数量的来源完成,包括一个简单的命令行会话。
如果您幸运足以使用GitHub 或GitHub for Enterprise,您可以查看events REST API 并检查谁/何时推送/丢弃 到远程引用,例如 log4j:
【讨论】: