当我执行一些git操作时,例如“git diff
”或“git add .
”,它会显示警告:
unable to access '/Users/dida/.config/git/attributes': Permission denied
我想知道哪个配置我做错了,我该怎么办呢? 使用某些命令会更好,我使用的是mac命令行
答案 0 :(得分:10)
似乎您已经运行sudo -H
并且sudo已将某些文件的所有权更改为root
。拿回文件:
sudo chown -R dida /Users/dida
答案 1 :(得分:4)
<强>原因强>
Git从各种路径读取配置设置,但无权访问其中一些路径。
Git尝试读取root配置设置而不是配置设置,因为启动脚本使用su命令而不重置环境变量选项(-m):
/bin/su -m $USER -c "cd $BASE/logs && $BASE/bin/startup.sh &> /dev/null"
使用/etc/init.d/atlbitbucket启动脚本以root身份启动Bitbucket Server。由于init.d脚本调用使用su -m的start-bitbucket.sh,因此会导致root的环境变量被保留,并且atlbitbucket无权在根主目录中写入。
Git是使用默认设置从源代码编译的,这可以防止除了编译Git的用户以外的任何用户运行它
解决强>
修复有关执行命令的Bitbucket Server用户的文件和目录的权限:
chown <USER>.<GROUP> -R /home/<USER>/.config
chown <USER>.<GROUP> -R /home/<USER>/.gitconfig
(info)通过操作系统中的用户名和组更改USER.GROUP。
如果Bitbucket Server启动脚本有su命令,请确保未使用选项-m。
如果使用/etc/init.d/atlbitbucket启动Bitbucket Server,请启动切换到使用服务atlbitbucket start启动Bitbucket服务器
要让Bitbucket Server在启动时自动启动,请运行chkconfig atlbitbucket
使用更合理的默认值重新编译Git:
make prefix=/usr/local/git all
make prefix=/usr/local/git install
答案 2 :(得分:1)
警告:无法访问“ /Users/raavan/.config/git/ignore”:权限被拒绝 警告:无法访问“ /Users/raavan/.config/git/attributes”:权限不足
好!如果您有类似的东西,这就是解决方案。 使用sudo命令
sudo git add --all, sudo git commit -m“”
这将在Mac OS中为我工作。
如果有人知道sudo命令为何起作用或以其他方式运行,请响应!。
答案 3 :(得分:0)
git使用HOME
和XDG_CONFIG_HOME
环境设置来查找配置文件。
id -a
同时检查git config -l --show-origin
以查看 Git正在尝试访问这些配置文件的位置。
答案 4 :(得分:0)
尝试sudo -u用户--set-home git clone http://github.com/repohere 这对我有用。
答案 5 :(得分:0)
在找到有关文件的更多信息后,我注意到该文件不是我的用户(“ ubuntu”)拥有,而是“ root”拥有。
ls -dl /home/$USER/.config
找出文件的用户和组
sudo chown $USER -R /home/$USER/.config
更新文件的用户
sudo chgrp $USER -R home/$USER/.config/
将文件组更新为当前用户
现在,再次使用ls
获取文件详细信息时,您会看到信息已更新。
为我解决了这个问题。