"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 的安装方式:
- 来自 Ubuntu 软件
- 而不是
gitkraken.com/download
第二种方法生成的 GitKraken 不会被锁定 /etc/gitconfig
.
我在 20.04 遇到了同样的问题。
不幸的是,从 gitkraken 网站下载时出现依赖错误,所以我不得不使用 snap。
尝试删除并重新创建配置,但没有用。尝试了其他答案评论中的所有内容,但无法解决问题。
只需删除 /etc/gitconfig 就可以解决问题。
我试图在 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 的安装方式:
- 来自 Ubuntu 软件
- 而不是
gitkraken.com/download
第二种方法生成的 GitKraken 不会被锁定 /etc/gitconfig
.
我在 20.04 遇到了同样的问题。
不幸的是,从 gitkraken 网站下载时出现依赖错误,所以我不得不使用 snap。
尝试删除并重新创建配置,但没有用。尝试了其他答案评论中的所有内容,但无法解决问题。
只需删除 /etc/gitconfig 就可以解决问题。