61

尝试设置全局配置时出现此错误:

$ git config --global user.name "Your Name Here"
error: could not lock config file /pathto/file/.gitconfig: No such file or directory

并且文件 .gitconfig 已经存在,有人有什么想法吗?

4

21 回答 21

37

有点像“ Trouble setting up Tower with my GitHub Account - error: could not lock config file ”,检查该~/.gitconfig文件是如何创建的。
即:与它相关的权利?

还要确保在执行命令$HOME时正确设置了变量。git config --global

于 2013-02-19T15:03:37.350 回答
27

检查您的主文件夹中是否有 .git 目录,如果没有:

mkdir ~/.git

解决了我的问题。

于 2015-07-07T15:36:24.577 回答
22

当 gitconfig 存在锁定文件时,我收到此错误。尝试查找并删除 .gitconfig.lock (在我的 linux 机器上,它位于我的主目录中)

于 2013-11-07T16:01:32.067 回答
19

只需以管理员身份运行.......您需要在 Windows 中以管理员身份运行模式运行程序

于 2014-12-15T16:44:40.123 回答
18

Windows 用户:确保您的环境变量设置正确。

我的帐户用户名“回形针”有以下内容:

My Computer (right-click) > Properties > Advanced (tab) > Environment Variables (under System Variables)

HOME -> %HOMEPATH%

HOMEPATH -> C:\Documents and Settings\paperclip

似乎 Git 无法像您期望的那样解析/%HOME%扩展%HOMEPATH%。相反,我需要通过将%HOME%%HOMEPATH%更改为:

HOME -> C:\Documents and Settings\paperclip

于 2014-06-09T12:26:57.053 回答
14

在 Windows 中:右键单击“Git Bash”图标 -> 以管理员身份运行。它帮助了我。

Git 尝试在磁盘 C:/ 上创建一个配置文件,但它没有这样做的权限。

于 2016-03-02T14:53:25.953 回答
7

如果用户不能写入用户主目录,则会发生这种情况。 git config --global需要~/.gitconfig.lock在用户主目录中创建一个“锁定”文件 ()。

检查权限并尝试创建一个。

# cat ~/.gitconfig.lock
cat: /home/users/developer/.gitconfig.lock: No such file or directory
# touch ~/.gitconfig.lock

## Now check, if a file has been created?
# cat ~/.gitconfig.lock
#

注意:如果成功,你必须删除这个文件,否则 git 会抛出另一个错误!

如果用户没有创建此文件的权限,您必须检查并更改主目录的权限。

于 2016-08-31T18:29:28.533 回答
3

如果您想在系统级别设置配置,只需使用以下命令:

$ sudo git config --system user.name "my_name"
于 2017-12-18T01:13:08.007 回答
3

我将.gitconfig文件重命名为xyz.gitconfig,然后git会生成一个新的.gitconfig文件,即wokrd

于 2019-08-13T03:00:39.967 回答
2

我在 Windows 上“遇到”了这个错误,因为我的名字(因此%HOMEPATH%)包含一个非 ascii 字符(é)。git 或 cmd.exe 或其他任何东西都无法解决这个问题。

于 2014-08-21T05:59:18.043 回答
2

更新你的 Git 客户端插件。它对我有用 =) https://issues.jenkins-ci.org/browse/JENKINS-21016

于 2014-02-19T14:01:54.360 回答
2

这可能是由 ~/.gitconfig.lock 的存在引起的。这个文件可能是以前运行的 git 的工件,由于某种原因被中止,例如 ansible 超时或 ^C

于 2017-11-02T18:02:06.270 回答
1

这对我有用,

  1. 打开开始菜单
  2. 键入不带引号的“环境”
  3. 选择编辑环境变量(系统或用户,任何)
  4. 在用户变量下,选择 HOME
  5. 点击编辑
  6. 添加 %USERPROFILE% 缺少的 % 前缀
  7. 继续为所有打开的窗口单击“确定”

[ 逐步说明在 Windows 10 上当前用户变量]

于 2021-10-14T12:50:26.023 回答
1

这是一篇旧帖子,但我最近遇到了这个问题,但我解决这个问题的方式与这里的其他人不同。我收到了同样的错误,因为我没有权限访问我的计算机上的 $HOME 路径。只需通过双击文件中的文件夹来访问该文件夹,系统就会提示我在第一次进入这些文件夹后获得对这些文件夹的永久访问权限。在我访问 $HOME 变量中最深的文件夹后,该命令起作用了。

于 2018-07-16T13:44:08.680 回答
1

我对聚会很老了,但可能这会对某些人有所帮助。感谢@paperclip

在 Windows 10 中:

第 1 步:转到 This PC> 右键单击Properties

第 2 步:单击Advanced System Settings并单击Environment Variables

第 3 步:在System Variables创建新变量下调用HOME并输入值,%USERPROFILE%如下所示

在此处输入图像描述

第 4 步:重要 您必须重新启动 PC 才能生效

第 5 步:Git for Windows现在安装,Tortoise Git for windows如果您愿意,可以选择安装。

发出 git clone 请求或尝试将某些内容推送到您的存储库中。魔法它会起作用的。现在一切都应该正常工作。

于 2020-06-10T19:56:48.813 回答
1

对我来说,问题不是 git config,而是我当前 repo 中的 .git 目录是由 root 创建的,我正试图对我的其他用户做一些事情。我换了烫发

于 2015-10-25T17:11:23.530 回答
1

您也可以尝试在主目录中发出命令。

于 2019-06-04T18:23:51.367 回答
1

就我而言,该.git/config文件不是在我的$HOME目录中创建的,而是在我的存储库中创建的.git/config.lock

删除文件解决了问题。该文件被创建,当我切换分支时git checkout -f branchname,来自最近创建的子模块的文件被 git checkout 覆盖。

$ git branch --set-upstream-to=origin/branchname
error: could not lock config file .git/config: File exists
error: Unable to write upstream branch configuration
hint: 
hint: After fixing the error cause you may try to fix up
hint: the remote tracking information by invoking
hint: "git branch --set-upstream-to=origin/branchname".
于 2019-07-01T18:41:12.950 回答
0

Windows 升级后我开始收到此错误。Windows 升级后,我的 Home 变量以某种方式被删除。通过将 HOME 变量添加为“C”\Users\myusername”解决了问题。

于 2019-11-26T08:09:24.527 回答
0

所以我知道这个线程很旧,但我遇到了同样的问题并修复了它。希望这对其他人有用。

当我尝试在 powershell/cmd 中使用“sudo”或任何东西时,它是一个无法识别的命令。所以我重新安装了 git for windows,在安装过程中它失败并指向 C:/ProgramFiles/git/etc/gitconfig 我删除了那个文件,然后重新安装。保存凭据时出现同样的错误,所以我将新创建的 gitconfig 从程序文件移动到我的 HomePath 位置 C:/Users/Name

现在我可以在 file-->Options-->git 下保存凭据 最后,我可以在 githubdesktop 上提交/推送

于 2020-02-16T15:07:47.327 回答
0

我遇到了同样的问题并尝试了这里提供的几种解决方案,这对我有用

删除.gitconfig.gitconfig.lock文件,然后再次运行全局配置的设置,为我解决这个问题,只需按顺序运行

rm -rf ~/.gitconfig.lock ~/.gitconfig

然后

git config --global user.name "YOUR NAME"

于 2021-10-05T09:31:58.617 回答