我试图在Ubuntu上使用GitKraken克隆存储库,但是这给我带来了一个错误“无法打开'/ etc / gitconfig'-权限被拒绝”。。
因此,我认为GitKraken软件需要访问gitconfig文件以使工作正常进行,并且尝试以某种方式尝试首先访问/etc/gitconfig
上的那个(其中已被锁定-我什至不知道“锁定”是什么意思),因此引发了错误。谷歌搜索之后,我发现一种解决方案听起来很合理,就是键入chmod 777 /etc/gitconfig
来授予所有人(包括GitKraken)权限以读取/写入该配置文件。但是这样做之后,即使重新启动后,它仍然无法工作(权限被拒绝)。 第一次尝试失败。也许这与权限无关?
然后我继续进行谷歌搜索,然后我知道git的配置文件有3种,分别是本地(位于.git/gitconfig
中),全局 (在~/.gitconfig
中)和系统(在/etc/gitconfig
中)。然后我想 “啊哈,我可以删除/etc/gitconfig
,然后Kraken将使用~/.gitconfig
” 。而在删除/etc/gitconfig
之后,它可以正常工作了(我可以按预期克隆仓库)。但是我认为这只是一个解决方法,我不知道这样做的后果(删除系统gitconfig)。正如我在document中所读的那样,它应该先读取本地的,然后依次读取全局的,然后是系统,因此,它应该仅读取/etc/gitconfig
(如果可以)在~/.gitconfig
中找不到人,对吗?为什么这里不是这样?还是GitKraken故意设置为首先从/etc/gitconfig
读取配置文件,而不是从上述顺序开始?
最后,我删除了系统gitconfig /etc/gitconfig
(将其重命名为/etc/.gitconfig
btw)。我的问题是我现在应该怎么做,我是否解决了我的问题?如果到那时我还是不完全了解发生了什么,请有人可以向我解释吗?
谢谢。
答案 0 :(得分:3)
您可以执行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.com/download
第二种方法产生一个GitKraken,它不会被锁定的/etc/gitconfig
绊倒。
答案 1 :(得分:0)
我在20.04遇到了同样的问题。
不幸的是,从gitkraken网站上下载的文件给了我一个依赖错误,所以我不得不使用snap。
尝试删除并重新创建配置,但是没有用。尝试了其他答案的注释中的所有内容,但无法解决问题。
只需删除/ etc / gitconfig即可为我解决。