查找谁删除了一个git分支

14

有人删除了远程git分支(我没有本地副本)。是否有可能找到谁在何时删除了该分支?

3个回答

6
如果您可以访问远程仓库(并且最近已经完成了),您可以使用reflog来查找分支何时被删除。然后,如果需要,可以在该提交上创建一个分支以恢复它。 gitolite文档提供了更多信息。

3
很可能远程仓库是一个裸仓库,并且默认情况下没有启用reflog。 - Roman

5
通常情况下,不会记录Git操作的日志,除非您使用了各种钩子来进行某种形式的日志记录,或者配置了git-daemon以记录连接,或者如果您使用ssh连接,则syslog配置可能已经捕获了足够的信息以进行相关性分析。

1

我知道这已经过时了,但也许有人会觉得它有用。如果你的git服务器是Bitbucket服务器并且你可以访问数据库,你可以运行以下查询:

select p.project_key, r.slug, pr.ref_id, pr.change_type, pr.from_hash, pr.to_hash, nu.name, a.created_timestamp from sta_repo_push_ref pr join sta_repo_activity ra on ra.activity_id = pr.activity_id join repository r on r.id = ra.repository_id join project p on p.id = r.project_id join sta_activity a on a.id = pr.activity_id join sta_normal_user nu on nu.user_id = a.user_id where p.project_key = '<project_key>' and r.slug = '<repository_slug>' and to_hash like '0000000%' and ref_id='refs/heads/<branch_name>' order by a.created_timestamp desc; 

请确保替换项目密钥、仓库和分支名称。执行后,您将在名称列中找到用户名。


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