找到谁删除了git分支

时间:2012-11-01 14:33:57

标签: git

有人删除了一个远程git分支(我没有它的本地副本)。是否有可能找到谁以及何时删除分支?

3 个答案:

答案 0 :(得分:5)

如果您有权访问远程存储库(最近已完成),则可以使用reflog查找删除分支的时间。然后,您可以在该提交上创建一个分支,以便在需要时恢复它。

gitolite documentation提供了更多信息。

答案 1 :(得分:4)

一般情况下,除非您已使用各种挂钩进行某种日志记录,或配置git-daemon来记录连接,或者如果您使用ssh连接,则syslog除外配置可能已捕获足够的信息以与之关联。

答案 2 :(得分:0)

我知道这是旧的,但也许有人会发现它有用 如果您的 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; 

确保替换项目密钥和存储库和分支名称。执行后你会在名称栏中找到用户名