如何从Azure Dev Ops的Git仓库中删除文件及其提交历史
问题解答
完全可以操作,由于该提交仅存于你的个人远程分支、未合并到受保护的main分支,操作不会影响主分支代码,风险极低。以下是两种对应操作方案:
方案1:仅删除敏感文件,保留本次提交的其他有效改动
如果你本次提交还有需要保留的其他代码修改,可以选择仅移除敏感文件:
- 本地仓库执行命令删除敏感文件的版本追踪:
git rm <你的敏感文件完整路径> - 把删除操作合并到上一次的问题提交中:
git commit --amend --no-edit - 强制推送覆盖远程分支的对应提交:
git push origin <你的个人分支名称> --force
该操作仅会修改最近一次提交的内容,不会改动更早的提交记录
方案2:彻底抹除本次提交的全部记录
如果你本次提交没有需要保留的内容,可以直接删除整个提交:
- 本地仓库回滚到上一个正常提交:
git reset --hard HEAD~1 - 强制推送覆盖远程分支:
git push origin <你的个人分支名称> --force
执行git reset --hard前请确认本地没有未提交的工作改动,避免内容误删
注意事项
如果仓库设置了分支保护规则禁止强制推送,你可以联系仓库管理员临时开通你的个人分支的强制推送权限,操作完成后再关闭即可。
操作完成后Azure DevOps后台可能会短暂缓存已删除的提交记录,通常24小时内会自动清理,如有紧急清理需求可以联系管理员手动触发仓库垃圾回收。
如果此前有其他协作者拉取过你的个人分支,请告知他们操作完成后删除本地旧分支、重新拉取远程分支,避免旧的敏感提交被再次推送。
内容的提问来源于stack exchange,提问作者journalsup
相关产品推荐
相关产品推荐

