我正在尝试向现有项目添加一个新的远程存储库(GitHub),我收到的错误是我以前从未见过的,并且不明白:
$ git remote add github git@github.com:me/myrepo.git
error: could not commit config file .git/config
什么?为什么我要提交git配置文件?我该如何解决这个问题呢?
我在Mac上,安装了大部分工具。我想这是我第一次尝试在这台机器上添加一个遥控器。
答案 0 :(得分:5)
某些git命令会修改git配置文件。其中一个是git remote add
,因为遥控器存储在配置文件中。
为避免同时修改配置文件的几个git进程出现问题,git会在更改之前锁定配置文件(通过写入锁定文件),然后释放锁定(通过将锁定文件重命名为配置文件)。
错误消息
error: could not commit config file .git/config
表示git无法正确释放此锁。这可能意味着另一个进程正在处理同一个文件,或者存在某种文件系统错误(或者git或您的OS /库中存在错误)。
不幸的是,git没有告诉你究竟是什么问题,所以你必须手动调试它。您可以尝试使用dtruss
运行git,看看到底出了什么问题。
答案 1 :(得分:0)
这可能是权限问题,尤其是对于在Windows上运行的自动作业,其权限少于同一用户的交互式登录。来自this answer on ServerFault:
每个登录会话到Windows(基于NT的版本,即)机器 有一个"安全令牌" - 一个描述其中的数据结构 其他事情,用户由令牌代表的组是a 成员。
"互动"身份不是您可以手动放置的组 成员进入,而是由操作系统添加, 为具有的用户构建安全令牌时自动执行 通过Windows图形用户界面登录。这类似于 "网络"身份,自动添加到创建的令牌 适用于通过网络访问本机的用户。
这些自动生成的组成员资格允许您构建 根据方式允许或拒绝访问资源的权限 用户正在访问该计算机。这是对许可的补充 系统根据谁来仲裁访问的默认行为 访问资源。