如何让Git忘记已删除的、位于符号链接指向路径下的文件
出现该错误的核心原因是Git索引中仍残留log/.keep的路径记录,执行stash时Git会扫描所有索引中存在的路径,而log是指向仓库外的软链接,路径穿透软链接后找不到对应文件就会抛出异常。可按照以下步骤依次排查解决:
解决方案
- 先确认
git rm --cached log/.keep操作是否已提交
未提交的情况下Git暂存区仍会保留该路径的记录,执行git commit -m "移除log/.keep的追踪"提交删除操作后重试git stash即可。 - 若已提交仍报错,执行命令清理索引无效条目
执行完成后重试stash操作。git update-index --remove log/.keep - 若仍存在问题,将log目录加入忽略规则
- 在项目根目录的
.gitignore文件中新增一行/log/ - 执行
git rm --cached -r log将整个log目录从追踪列表移除,该操作不会删除本地的符号链接 - 提交变更后再次执行stash
- 在项目根目录的
- 临时快速解决方案
如果仅需要快速完成暂存操作,可直接执行命令忽略故障路径:git stash push -- :!log/.keep
内容的提问来源于stack exchange,提问作者JayantSeth
相关产品推荐
相关产品推荐

