git reset --hard 无法重置未提交更改,如何彻底清除多余未提交文件?
Git仓库异常改动重置方案
git reset --hard 仅会重置已被Git跟踪的文件的内容变动,不会处理未跟踪文件、文件权限/换行符识别导致的异常改动,你可以按以下步骤操作:
- 第一步:清理未跟踪文件/目录
先执行git clean -n预览待删除的未跟踪内容,确认无有用文件后按需执行对应命令:- 仅删除未跟踪文件:
git clean -f - 删除未跟踪文件+目录:
git clean -fd - 删除所有未跟踪内容(包括.gitignore忽略的文件):
git clean -fdx
- 仅删除未跟踪文件:
- 第二步:处理残留异常改动
如果清理完未跟踪内容后仍有改动提示,按对应场景处理:- 文件权限变动导致的误识别:执行
git config core.fileMode false关闭权限检测 - 换行符自动转换导致的误识别:
- Windows系统执行
git config core.autocrlf true - macOS/Linux系统执行
git config core.autocrlf input
配置完成后重新执行git reset --hard即可完成重置。
- Windows系统执行
- 文件权限变动导致的误识别:执行
注意:
git clean -fdx会删除所有不在Git版本跟踪范围内的文件,包括本地私有的配置、构建产物等,执行前务必确认不会误删有用内容。
内容的提问来源于stack exchange,提问作者wikadom
相关产品推荐
相关产品推荐

