首页 > 解决方案 > 使用 GitKraken 克隆存储库时“无法打开 '/etc/gitconfig' - 权限被拒绝”

问题描述

我试图在 Ubuntu 上使用 GitKraken 克隆一个 repo,但它给我一个错误"failed to open '/etc/gitconfig' - permission denied"

所以我认为 GitKraken 软件需要访问一个 gitconfig 文件才能使事情正常工作,并且它首先尝试访问该/etc/gitconfig文件(它被锁定 -我什至不知道“锁定”是什么意思),所以它抛出了错误。谷歌搜索后,我发现一个听起来很合理的解决方案是输入chmod 777 /etc/gitconfig给每个人(包括 GitKraken)读取/写入该配置文件的权限。但是这样做之后,即使重新启动,它仍然无法工作(权限被拒绝)。第一次尝试失败。也许这与许可无关

然后我一直在谷歌搜索,然后我知道 git 有 3 种类型的配置文件,它们是本地(位于.git/gitconfig)、全局(位于~/.gitconfig)和系统(位于/etc/gitconfig)。然后我想“啊哈,我可以删除/etc/gitconfig,然后 Kraken 将使用~/.gitconfig。然而在删除之后/etc/gitconfig,它可以工作(我可以按预期克隆我的仓库)。但是我认为这只是一种解决方法,我不知道这样做的后果是什么(删除系统gitconfig)。正如我在文档中阅读的那样,它应该首先读取本地,然后是全局,然后是系统,所以它应该只读取/etc/gitconfig如果只是在 中找不到~/.gitconfig,对吗?为什么这里不是这样?还是 GitKraken 故意设置从/etc/gitconfig第一个而不是上面的顺序读取配置文件?

最后,我删除了系统 gitconfig /etc/gitconfig(通过将其重命名为/etc/.gitconfigbtw)。我的问题是我现在该怎么办,我的问题解决了吗?如果现在我还不完全理解发生了什么,请有人向我解释一下吗?

提前致谢。

错误捕获: 捕获

标签: gitgithubgitkraken

解决方案


您可以git config --show-origin -l查看所有涉及的配置文件。

/etc/gitconfig 是系统范围的配置文件,总是先读取。
锁定的文件通常意味着另一个进程已经对其进行了处理(通常在 Windows 上,但您可能在 Linux 上)

您可以稍后重新创建它,即使内容很少,也可以查看问题是否仍然存在:

[color]
        diff = auto
        status = auto
        branch = auto
        interactive = true

显然,从评论来看,问题在于 GitKraken 的安装方式:

第二种方法会生成一个 GitKraken,它不会被 lock 绊倒/etc/gitconfig


推荐阅读