"failed to open '/etc/gitconfig' - permission denied" 当使用 GitKraken 克隆一个 repo 时

"failed to open '/etc/gitconfig' - permission denied" when clone a repo with GitKraken

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

所以我认为 GitKraken 软件 需要访问一个 git 配置文件 才能正常工作,它不知何故 试图访问位于/etc/gitconfig first(已锁定-我什至不知道"lock"是什么意思),所以它抛出了错误。谷歌搜索后,我发现一个听起来合理的解决方案是键入 chmod 777 /etc/gitconfig 以给予每个人(包括 GitKraken) 到 read/write 到该配置文件的权限。但在这样做之后,它仍然无法工作(权限被拒绝),即使在重新启动后也是如此。 第一次尝试失败。也许这与许可无关

然后我继续google,然后我知道git的配置文件有3种类型,分别是local(位于.git/gitconfig) 、global(在 ~/.gitconfig 中)和 system(在 /etc/gitconfig 中)。然后我想"aha, I could just delete the /etc/gitconfig, then Kraken will use ~/.gitconfig"。然而在删除 /etc/gitconfig 之后,它可以正常工作 (我可以按预期克隆我的存储库)。但我认为这只是一个 解决方法 ,我不知道这样做的后果是什么(删除系统 gitconfig)。正如我在 document 中所读,它应该 首先读取本地的,然后是全局的,然后是系统 的顺序,所以它应该 只读取 /etc/gitconfig 如果只在 ~/.gitconfig 中找不到一个,我说得对吗?为什么这里不是这种情况?或者 GitKraken 是否故意设置为先从 /etc/gitconfig 读取配置文件而不是上述顺序?

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

提前致谢。

捕获错误:

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

/etc/gitconfig is the system-wide configuration file,总是先读。
锁定的文件通常意味着另一个进程保留了它的句柄(通常使用 Windows,但您可能在 Linux)

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

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

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

第二种方法生成的 GitKraken 不会被锁定 /etc/gitconfig.

我在 20.04 遇到了同样的问题。
不幸的是,从 gitkraken 网站下载时出现依赖错误,所以我不得不使用 snap。
尝试删除并重新创建配置,但没有用。尝试了其他答案评论中的所有内容,但无法解决问题。

只需删除 /etc/gitconfig 就可以解决问题。