当我做一些git操作时,例如' git diff'或' git add .',它会显示警告:
unable to access '/Users/dida/.config/git/attributes': Permission denied
Run Code Online (Sandbox Code Playgroud)
我想知道哪个配置我做错了,我该如何解决?
使用某些命令更好,我使用的是mac命令行
phd*_*phd 15
似乎你已经运行sudo -H,sudo将某些文件的所有权更改为root.拿回文件:
sudo chown -R dida /Users/dida
Run Code Online (Sandbox Code Playgroud)
原因
Git从各种路径读取配置设置,并且无权访问其中的一些。
由于使用su命令的启动脚本以及不重置环境变量选项(-m),Git尝试读取根配置而不是配置设置:
/bin/su -m $USER -c "cd $BASE/logs && $BASE/bin/startup.sh &> /dev/null"
Run Code Online (Sandbox Code Playgroud)
使用/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
Run Code Online (Sandbox Code Playgroud)
(信息)通过您的用户名和操作系统中的组更改USER.GROUP。
如果Bitbucket Server启动脚本具有su命令,请确保未使用选项-m。
如果使用/etc/init.d/atlbitbucket start启动Bitbucket Server,请切换到使用服务atlbitbucket start启动Bitbucket Servering
要让Bitbucket Server在启动时自动启动,请在以下位置运行chkconfig atlbitbucket
使用更合理的默认值重新编译Git:
make prefix=/usr/local/git all
make prefix=/usr/local/git install
Run Code Online (Sandbox Code Playgroud)
也许这篇文章可以为您提供帮助https://confluence.atlassian.com/bitbucketserverkb/permission-denied-on-git-config-file-779171763.html
git 使用HOME和XDG_CONFIG_HOME环境设置来查找配置文件。
确保对当前用户正确设置它们(检查命令的id结果)
id -a
Run Code Online (Sandbox Code Playgroud)
还要检查git config -l --show-originGit尝试访问这些配置文件的位置。
| 归档时间: |
|
| 查看次数: |
9643 次 |
| 最近记录: |