我刚刚在两三个月内第一次启动我的 Windows 10 机器,并更新了一个游戏,该游戏的版本保存在 git repo 中。游戏有一个补丁,所以我尝试暂存更改,但出现了以下错误:
错误:权限不足,无法将对象添加到存储库数据库 .git/objects
自从几个月前它工作以来,我还没有改变任何东西。ls -l
在 git bash 中,我显示我是游戏目录中所有文件的所有者。我可以移动和重命名那里的文件。我也是 下所有目录的所有者.git/objects
。git 缺少什么权限?
更多信息
repo 路径的结构是C:\Program Files (x86)\Foo\Bar\.git
。我之前chown -R Kevin .
在chown -R Kevin .git
里面运行过Bar
。
我可以将Bar
文件夹复制到我的桌面。但在文件Bar
夹内Foo
或Foo
文件夹内进行复制C:\Program Files (x86)
需要管理员权限。
这似乎没有解释 git 需要什么权限。它应该只写入目录.git
,对吧?错误是由于尝试在 中写入文件.git
。我可以touch
在那里毫无问题地写入文件。
答案1
写入需要 Windows 的管理员权限。对于 Windows 来说, git bash 中显示您是文件夹所有者C:\Program Files (x86)
并不重要,而且这不会让您从 Windows 获得该文件夹的任何额外权限。ls -lt
我建议将存储库移到外面C:\Program Files (x86)
,以避免权限问题。
您可以使用
git init
该文件夹内的 在任何文件夹中创建存储库。只需使用命令,您就可以将任何目录变成 git 存储库git init
。
这将避免存储库文件夹的权限问题。
更多信息请参阅文章 创建本地存储库。
答案2
子目录中可能存在一些具有不同权限的文件。
您需要更改目录所有权,如这个 Stackoverflow 答案。