如何在Azure DevOps中删除未被Git追踪的文件夹?
解决Azure DevOps未追踪文件夹删除问题
核心原因
未被Git追踪的文件夹不在Git版本控制体系内,本地检出看不到是正常的;直接在DevOps网页删它属于直接修改远程仓库,触发了main分支的「必须通过PR更新」政策;而Main到Main的PR提示无变更,是因为Git里根本没有这个文件夹的记录,自然没有差异可合并。
具体解决方法
方法1:按Git工作流处理(推荐,合规且安全)
- 本地克隆仓库:
git clone <你的仓库URL> - 进入仓库目录,手动创建和要删除的同名文件夹(让Git能识别到这个变更)
- 把文件夹加入Git追踪:
git add <文件夹名称> - 提交临时变更:
git commit -m "临时添加文件夹以追踪删除操作" - 删除该文件夹:Mac/Linux用
rm -rf <文件夹名称>,Windows用rmdir /s /q <文件夹名称> - 提交删除变更:
git commit -m "删除未被追踪的闲置文件夹" - 创建新分支:
git checkout -b delete-untracked-folder - 推送新分支到远程:
git push origin delete-untracked-folder - 去Azure DevOps创建从
delete-untracked-folder到main的PR,走完审批合并流程后,目标文件夹就会被删除,同时符合分支政策要求。
方法2:临时调整分支政策(需权限)
- 进入Azure DevOps仓库的「分支政策」页面,找到main分支的政策配置
- 找到「强制要求拉取请求才能更改」的选项,暂时关闭(如果你的账号有修改权限)
- 返回仓库网页,直接删除那个未追踪的文件夹并保存变更
- 操作完成后,记得重新开启「强制要求拉取请求」的政策,保障分支安全。
方法3:如果是被.gitignore忽略的文件夹
- 检查仓库根目录的
.gitignore文件,确认是否有对应文件夹的忽略规则 - 删掉
.gitignore里的对应规则,提交并推送到新分支,走PR合并到main - 之后按方法1的步骤,完成添加、删除文件夹的操作并合并PR。
内容的提问来源于stack exchange,提问作者B_M_Small
相关产品推荐
相关产品推荐

