【问题标题】:"failed to open '/etc/gitconfig' - permission denied" when clone a repo with GitKraken使用 GitKraken 克隆存储库时“无法打开 '/etc/gitconfig' - 权限被拒绝”
【发布时间】:2020-03-18 02:39:54
【问题描述】:

我试图在 Ubuntu 上使用 GitKraken 克隆一个 repo,但它给我一个错误“无法打开 '/etc/gitconfig' - 权限被拒绝”

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

然后我一直在google,然后我知道git有3种配置文件,分别是local(位于.git/gitconfig),global(位于~/.gitconfig)和系统(在/etc/gitconfig)。然后我想“啊哈,我可以删除/etc/gitconfig,然后Kraken 将使用~/.gitconfig。然而,在删除 /etc/gitconfig 之后,它可以工作(我可以按预期克隆我的 repo)。但我认为这只是一个workaround,我不知道这样做的后果是什么(删除系统gitconfig)。正如我在document 中阅读的那样,它应该首先读取本地的,然后是全局的,然后是系统的,所以它应该只读取/etc/gitconfig,如果只是找不到一个在~/.gitconfig,对吗?为什么这里不是这样?还是 GitKraken 故意设置先从/etc/gitconfig 读取配置文件而不是上述顺序?

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

提前致谢。

错误捕获:

【问题讨论】:

    标签: git github gitkraken


    【解决方案1】:

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

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

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

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

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

    第二种方法产生一个 GitKraken,它不会被锁定的 /etc/gitconfig 绊倒。

    【讨论】:

    • 谢谢!!阅读您的评论后,我尝试使用上面建议的内容重新创建 /etc/gitconfig 文件。但是在输入git config --show-origin -l 时,我只看到了来自~/.gitconfig 的配置(没有来自/etc/gitconfig)。之后,我尝试用 GitKraken 克隆一个项目,它弹出相同的错误/etc/gitconfig is locked。我的一个朋友也使用了 GitKraken,它在他的计算机上运行良好,即使有 /etc/gitconfig,他也可以克隆项目,所以我想它的存在并不重要,但不知何故,showbody(可能是我)锁定了我的“系统 gitconfig”文件?
    • @HuỳnhLợiNguyễn 你在 Windows 上吗?你安装了哪个版本的 Git?
    • @HuỳnhLợiNguyễn GitKraken 本身的安装方式有什么不同吗(与您朋友的工作站相比)?在命令行中完成克隆会成功吗? (git clone ...)
    • @HuỳnhLợiNguyễn 我怀疑安装方法是罪魁祸首,但我不知道具体原因。我已经相应地编辑了答案。
    • @HuỳnhLợiNguyễn 不客气。很高兴你现在有一个工作的 GitKraken!
    【解决方案2】:

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

    只需删除 /etc/gitconfig 即可为我解决。

    【讨论】:

      猜你喜欢
      • 2021-09-30
      • 2016-05-18
      • 2014-01-08
      • 1970-01-01
      • 2012-08-07
      • 2018-09-21
      • 2013-08-05
      • 1970-01-01
      • 2014-02-10
      相关资源
      最近更新 更多