误提交PSD文件后Git index损坏无法add文件该如何解决?
Git索引损坏+历史大文件残留问题解决方案
第一步:修复损坏的Git索引
- 删除当前已损坏的索引文件:
Linux/macOS执行:rm .git/index
Windows PowerShell执行:Remove-Item .git/index - 执行重置命令重建索引,该操作会完整保留工作区所有现有文件修改:
git reset - 操作完成后原标记为Index deleted的文件会恢复正常状态,此时执行
git add .即可正常将修改纳入暂存区。
第二步:彻底清除提交历史中的大体积.psd文件
索引修复后需解决根因:已提交的.psd文件仍存在于提交历史中,直接推送依旧会被阻塞,按以下步骤操作:
- 确认
.gitignore文件已添加*.psd规则,避免后续再误提交同类文件 - 执行命令清除所有提交历史中的.psd文件:
Git 2.22及以上版本执行:git filter-repo --path-glob '*.psd' --invert-paths
旧版本Git执行:git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch *.psd' --prune-empty --tag-name-filter cat -- --all - 清理完成确认提交历史无psd相关记录后,即可正常推送,首次推送需添加强制参数:
git push origin 你的分支名 --force
注意事项
- 执行历史修改操作前建议先备份完整项目文件夹,避免操作失误造成文件丢失
内容的提问来源于stack exchange,提问作者Guillaume Ayad
相关产品推荐
相关产品推荐

