我该如何查找在git中进行了强制推送的人?

42
有人使用了 git push --force,但是从日志中无法确定是谁干的。有办法找到罪犯吗?

10
你可以让团队中的每个成员接受测谎仪测试。如果这行不通,告诉他们如果罪犯不站出来,每个人都必须在一周内工作午餐时间。 - cowls
1
请注意,您很快就能以更安全的方式执行git push --force操作。详情请参见:https://dev59.com/X3A75IYBdhLWcg3wrbG_#18505634 - VonC
2个回答

60

2018年11月更新:如果你正在推送到像GitHub这样的集中式Git仓库托管服务,那么你将能够看到谁强制推送了你的分支。但这只是因为GitHub选择在其GUI中展示了这个事件。

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

查看更多信息,请访问 "在GitHub上查找强制推送的提交者"。


原始回答2013:

正如我在“分布式版本控制系统和企业——一个好的组合吗?”中提到的那样,仅使用Git无法进行授权或身份验证。

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

但是,如果您的存储库可以通过文件(或本地)协议访问,则无法知道是谁强制提交的。

测谎仪 (来自motivationalgenerator.comwikipedia


使用Bitbucket。没有记录。这可能是由于某些GUI工具意外完成的,该工具不会弹出对话框警告用户吗? - wcochran
@wcochran 我确认我上面提到的记录仅适用于GitHub存储库。对于BitBucket,可以从任意数量的来源(包括简单的命令行会话)执行push --force - VonC

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接