4

我正在尝试将新的远程存储库 (GitHub) 添加到现有项目中,但我遇到了一个我以前从未见过的错误,并且不明白:

$ git remote add github git@github.com:me/myrepo.git   
error: could not commit config file .git/config

什么?为什么我要提交 git 配置文件?以及如何让这种情况停止发生?

我在 Mac 上,我的大多数工具都安装了相对较新的版本。我认为这是我第一次尝试将遥控器添加到这台机器上的仓库中。

4

2 回答 2

5

一些 git 命令会修改 git 配置文件。其中之一是git remote add,因为远程存储在配置文件中。

为了避免多个 git 进程同时修改配置文件的问题,git 会在更改配置文件之前锁定配置文件(通过写入锁定文件),然后释放锁定(通过将锁定文件重命名为配置文件)。

错误信息

error: could not commit config file .git/config

意味着 git 无法正确释放这个锁。这可能意味着另一个进程正在处理同一个文件,或者存在某种文件系统错误(或者 git 或您的操作系统/库中存在错误)。

不幸的是,git 并没有告诉你到底是什么问题,所以你必须手动调试它。您可以尝试运行 gitdtruss以查看到底出了什么问题。

于 2013-09-12T10:19:55.507 回答
0

这可能是一个权限问题,尤其是对于在 Windows 上运行的自动化作业,其权限可能少于同一用户的交互式登录。从ServerFault 上的这个答案

Windows(即基于 NT 的版本)机器的每个登录会话都有一个“安全令牌”——一种数据结构,其中描述了令牌所代表的用户所属的组。

“交互式”标识不是您可以手动将成员放入的组,而是由操作系统在为已通过 Windows 图形用户界面登录的用户构建安全令牌时自动添加的。这类似于“网络”身份,它会自动添加到为通过网络访问机器的用户创建的令牌中。

这些自动生成的组成员资格允许您根据用户访问机器的方式构建可能允许或拒绝访问资源的权限。这补充了权限系统的默认行为,即根据谁在访问资源来仲裁访问。

于 2017-07-07T08:14:18.470 回答