错误:无法写入新配置文件H://.gitconfig.lock

时间:2018-03-14 14:19:10

标签: git config

我尝试使用以下命令在git config中添加notepad ++编辑器:

git config --global core.editor "C:\LegacyApp\Notepad++\notepad++.exe"

我得到的错误是:

error: failed to write new configuration file H://.gitconfig.lock

我无法在任何地方找到.gitconfig.lock个文件。

我已经检查了所有权。

值得指出的是,我的.gitconfig文件是空的,我想这是问题的来源,但我没有更多的想法如何解决它,除了重新安装我的gitBash。有没有人对我如何克服这个问题有任何其他想法?

2 个答案:

答案 0 :(得分:0)

(这应该是一个评论 - 它是一个指南,而不是一个答案 - 但我太详细了。:-))

Git通过将现有的配置复制到临时文件来写出配置,并在此过程中进行必要的更改。 (这是此类程序的典型工作流程:读取现有文件,进行替换,在工作时写入临时文件。)

如果两个用户或单个用户的两个进程可能同时与 尝试进行更改同时运行,则一个进程的更改可能是丢失。假设进程A打开原始文件并开始进行更改,而进程B也打开原始文件并开始进行更改。进程A首先完成,用其临时副本替换原始文件,然后退出。然后进程B完成,用临时副本替换原始文件,然后退出。流程A的更改现在已消失

Git的解决方案是在进行任何更改之前使用 lock:,任何进程都必须获取锁定,锁定一次只能用于一个进程。 Git将此与临时文件本身结合起来,通过利用创建文件的操作,但如果文件存在则失败。因此,如果配置文件名为H:/.gitconfig,则临时文件和锁文件可以命名为H:/.gitconfig.lock。此文件将自动与配置文件位于同一存储设备上,因此最后,当临时文件完成时,Git可以重命名 H:/.gitconfig.lockH:/.gitconfig,解锁配置同时将其更新为新配置。

这一切意味着Git认为配置文件名为H:/.gitconfig,并且需要创建排除(锁定操作)H:/.gitconfig.lock的权限,但它没有这样的权限

名称H:似乎是Windows驱动器说明符。我避免使用Windows,并且不知道是否有理由让您的个人Git配置存在于Windows驱动器中,也不知道Windows驱动器权限可能存储在哪里,但这是在哪里查看。您的配置应该位于其他位置(例如H:/yourname),以便更容易控制权限,或者您必须对驱动器本身的任何权限而不是驱动器中的任何文件大惊小怪。

答案 1 :(得分:0)

以管理员身份运行Git。

我尝试启用Git rerere时遇到了完全相同的错误。我正在运行Windows,因此我在搜索中输入了Git来启动Git Bash程序,右键单击并选择以管理员身份运行。

如果这不起作用,请尝试重新启动以确保没有其他程序对该文件进行写访问,然后重试。