【问题标题】:Trouble setting up git with my GitHub Account error: could not lock config file使用我的 GitHub 帐户错误设置 git 时出现问题:无法锁定配置文件
【发布时间】:2013-02-19 14:32:39
【问题描述】:

我在尝试设置全局配置时遇到此错误:

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

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

【问题讨论】:

  • 这是在哪个操作系统上? (看起来 Git 无法正确解析您的 $HOME 或 $USER?还是您自己将那个“用户名”放在那里?)
  • 你对.gitconfig有正确的权限吗?
  • -rw-rw-r-- 1 .gitconfig
  • mkdir ~/.git; cd ~; git config ... 应该可以解决问题。重要的部分是当你运行 git config 时,你应该在包含 .git 的目录中(例如你的主路径)。

标签: git


【解决方案1】:

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

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

【讨论】:

  • @codepros 该文件是否有可能被另一个进程锁定?
  • 我会尝试重新安装 git
【解决方案2】:

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

mkdir ~/.git

解决了我的问题。

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 这里类似——我的 .git 目录中有一个“config.lock”文件。我将其重命名为“config”。不知道是什么导致它锁定,我只是在做正常的分支/推/拉。编辑:可能是因为我使用 git bash 和 Visual Studio git 插件...
    • 不得不删除../.git/svn/.metadata.lock。看起来任何.lock 文件都可能导致问题。
    【解决方案4】:

    只需以管理员身份运行.......你需要在windows中以管理员身份运行程序

    【讨论】:

    • 我遇到了同样的问题,当我以管理员身份运行 gitbash 时问题解决了
    【解决方案5】:

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

    我的帐户用户名“paperclip”有以下内容:

    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

    【讨论】:

    • 我认为您不需要这样做。您可以简单地从环境变量中删除 home,它会起作用。
    • 我的情况与此类似。我创建了一个变量 home,但我的用户名拼写错误。我重新安装了 git 几次,但没有帮助。我什至无法保存任何配置。最后,看到这个答案,我删除了变量home,一切正常。
    • 我遇到了同样的问题 - TortoiseGit 无法解析“双重间接”%HOME% -> %USEPROFILE% -> C:\Users\andre,必须直接设置%HOME% = C:\Users\andre
    【解决方案6】:

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

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

    【讨论】:

    • 谢谢。以管理员身份运行命令提示符对我有用。但是,我不明白,当我当前使用的用户已经是管理员时,为什么要执行此额外步骤。
    【解决方案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会抛出另一个错误!

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

    【讨论】:

    • 谢谢我在重新配置时遇到了问题,使用 --system 选项时它不会将我的命令作为我自己的用户,即使我在环境变量中配置了所有内容,我的命令(如 maven 或git 不能在管理控制台上工作,而 java 可以。我只是允许自己使用 Git 中的任何东西,这不是一个好的做法,但它确实有效。
    【解决方案8】:

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

    $ sudo git config --system user.name "my_name"
    

    【讨论】:

      【解决方案9】:

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

      【讨论】:

        【解决方案10】:

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

        【讨论】:

          【解决方案11】:

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

          【讨论】:

            【解决方案12】:

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

            【讨论】:

              【解决方案13】:

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

              【讨论】:

                【解决方案14】:

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

                【讨论】:

                  【解决方案15】:

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

                  【讨论】:

                    【解决方案16】:

                    在我的例子中,.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".
                    

                    【讨论】:

                      【解决方案17】:

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

                      在 Windows 10 中:

                      第一步:转到This PC > 右击Properties

                      第二步:点击Advanced System Settings再点击Environment Variables

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

                      第四步:重要必须重启电脑才能生效

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

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

                      【讨论】:

                        【解决方案18】:

                        这对我有用,

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

                        []

                        【讨论】:

                          【解决方案19】:

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

                          【讨论】:

                            【解决方案20】:

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

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

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

                            【讨论】:

                              【解决方案21】:

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

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

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

                              然后

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

                              【讨论】:

                                猜你喜欢
                                • 1970-01-01
                                • 2018-08-23
                                • 2011-07-09
                                • 1970-01-01
                                • 1970-01-01
                                • 2015-11-12
                                • 2019-02-07
                                • 1970-01-01
                                • 1970-01-01
                                相关资源
                                最近更新 更多