误拒Git文件权限后,如何恢复文件及目录权限?
问题描述
我是编程新手,刚学终端提交操作。执行git add -A时Git请求访问所有文件,我不确定安全性就拒绝了,现在出现权限错误,没法用Git创建文件,报错如下:
error: open("Library/Application Support/FileProvider/8B7B18C3-4F13-4F7D-A0CD-EF8531215A66/wharf/tombstone/a"): Permission denied
error: unable to index file 'Library/Application Support/FileProvider/8B7B18C3-4F13-4F7D-A0CD-EF8531215A66/wharf/tombstone/a'
fatal: adding files failed
试过关闭重启应用、给文件加chmod +x权限、在系统隐私设置里允许访问、执行chmod 777,都没用,需要可行的分步修复方案。
分步解决步骤
重置Git的隔离权限
打开终端,执行以下命令清除Git的系统隔离标记(这会让系统重新识别Git的权限请求):sudo xattr -r -d com.apple.quarantine /usr/bin/git输入你的系统密码(输入时终端不会显示字符,正常输入后回车即可)
重新授予Git全磁盘访问权限
- 打开「系统设置」→「隐私与安全性」→「全磁盘访问」
- 点击列表底部的
+按钮,按Command+Shift+G调出路径输入框,输入/usr/bin/git,选中Git后点击「打开」 - 重启终端,确保权限设置生效
清理Git缓存并重新尝试提交
进入你的Git仓库所在目录,依次执行以下命令:git rm -r --cached . git add .这时候如果弹出Git的权限请求窗口,一定要点击「允许」
修正文件所有者权限(若上述步骤无效)
先查看目标文件的所有者信息:ls -l "Library/Application Support/FileProvider/8B7B18C3-4F13-4F7D-A0CD-EF8531215A66/wharf/tombstone/a"如果文件所有者不是当前用户,执行命令修改整个目录的归属:
sudo chown -R $USER:$USER "Library/Application Support/FileProvider/8B7B18C3-4F13-4F7D-A0CD-EF8531215A66/"输入密码后回车,再重新执行
git add操作
内容的提问来源于stack exchange,提问作者KeiS

