EACCES git system_error ai_generated true

错误:运行维护失败:无法创建临时文件:权限被拒绝

error: failed to run maintenance: could not create temporary file: Permission denied

ID: git/error-failed-to-run-maintenance

其他格式: JSON · Markdown 中文 · English
85%修复率
85%置信度
1证据数
2024-03-05首次发现

版本兼容性

版本状态引入弃用备注
git 2.31.0 active
git 2.40.0 active
git 2.44.0 active

根因分析

Git 的后台维护任务(如 gc 或 commit-graph write)无法在仓库的对象目录中创建临时文件,原因是文件系统权限不足或磁盘空间不足。

English

Git's background maintenance tasks (like gc or commit-graph write) cannot create temporary files in the repository's object directory due to insufficient filesystem permissions or disk space.

generic

官方文档

https://git-scm.com/docs/git-maintenance

解决方案

  1. chmod -R u+w .git/objects  # Grant write permission to the objects directory for the current user
  2. df -h && du -sh .git  # Check disk space; if full, free up space by removing large files or running git maintenance stop to disable auto-maintenance

无效尝试

常见但无效的做法:

  1. 95% 失败

    Running git gc manually without addressing permission issues will fail with the same error because gc also needs to create temp files.

  2. 80% 失败

    Changing ownership of .git/objects to root with chown -R root:root can break other git operations and is not a proper fix.