如何查询VSO中Git分支删除历史并恢复误删分支?
别慌,我来一步步帮你解决VSO(现在已更名为Azure DevOps)Git仓库里分支误删的问题:
一、查询哪些分支被谁删除
你有两种可靠的方式追踪删除操作:
- 通过Azure DevOps门户的审计日志
这是最全面的方法,步骤如下:- 进入你的Azure DevOps项目
- 点击左下角的「项目设置」
- 在左侧菜单选择「审计」
- 在筛选器里选择事件类型为「Git分支删除」,就能看到所有被删除分支的名称、删除人、操作时间甚至IP地址等细节
- 本地Git仓库的reflog(辅助方式)
如果你本地克隆过这个仓库,运行以下命令可以查看本地记录的分支变动:
日志里会包含类似git reflog show --all[提交哈希] HEAD@{n}: branch: deleted feature/user/xxx的记录,但这个只限于你本地操作或同步过的分支,不如审计日志全面。
二、恢复已删除的分支
只要分支的提交记录还在仓库的保留期限内(Azure DevOps默认保留90天),完全可以恢复:
- 已知分支最后提交哈希的情况
如果你通过审计日志、reflog或者提交历史找到了分支最后一次提交的哈希值,直接在本地执行:
然后推送到远程仓库:git checkout -b feature/user/你的分支名 <提交哈希值>git push origin feature/user/你的分支名 - 未知提交哈希的情况
用Azure DevOps自带的恢复功能更省心:- 进入仓库的「分支」页面
- 点击右上角的「...」按钮,选择「恢复分支」
- 在弹出的窗口里,会列出所有近期被删除的分支(带删除时间),找到你需要的分支后点击「恢复」即可,分支会自动回到远程仓库。
三、查找Git分支的删除历史
除了上面提到的方法,补充两个关键点:
- 优先用Azure DevOps审计日志:它是官方的全局记录,不管是谁在哪个终端操作的删除,都会被记录下来,筛选「Git分支删除」事件就能导出完整的删除历史
- 本地reflog补充:如果需要查看你自己本地操作的分支删除记录,运行
git reflog就能看到你本地仓库所有分支的创建、切换、删除等操作历史,但仅限本地范围。
内容的提问来源于stack exchange,提问作者Mathiyazhagan
相关产品推荐
相关产品推荐

