我正在尝试使用以下命令在 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。有没有人对我如何克服这个问题有任何其他想法?
小智 5
以管理员身份运行 Git。
我在尝试启用 Git rerere 时遇到了完全相同的错误。我运行的是 Windows,因此我在搜索中输入 Git 以调出 Git Bash 程序,右键单击并选择以管理员身份运行。
如果这不起作用,请尝试重新启动以确保没有其他程序对该文件进行写访问,然后重试。
(这应该是一条评论\xe2\x80\x94,它是一个指南,而不是答案\xe2\x80\x94,但我太冗长了。:-))
\n\nGit通过将现有配置复制到临时文件来写出新配置,并在此过程中进行所需的任何更改。(这是此类程序的典型工作流程:读取现有文件、进行替换、在工作时写入临时文件。)
\n\n如果两个用户或单个用户的两个进程可能同时运行并尝试进行更改,则一个进程的更改可能会丢失。假设进程 A 打开原始文件并开始进行更改,而进程 B 也打开原始文件并开始进行更改。进程 A 首先完成,用其临时副本替换原始文件,然后退出。然后进程 B 完成,用其临时副本替换原始文件,然后退出。进程 A 的更改现已消失。
\n\nGit 对此的解决方案是使用锁:在进行任何更改之前,任何进程都必须获得锁,并且该锁一次只能供一个进程使用。Git 将其与临时文件本身结合起来,利用了这样的想法:存在一个将创建文件但如果文件存在则失败的操作。因此,如果配置文件被命名H:/.gitconfig,那么临时文件和锁定文件也可以被命名H:/.gitconfig.lock。该文件将自动与配置文件位于同一存储设备上,因此最后,当临时文件完成时,Git 可以重命名 H:/.gitconfig.lock为H:/.gitconfig,这既解锁了配置,又同时将其更新为新配置。
这一切意味着 Git 认为配置文件名为H:/.gitconfig,并且它需要 create-with-exclusion (锁定操作)的权限H:/.gitconfig.lock,但它没有这样的权限。
该名称H:似乎是 Windows 驱动器说明符。我避免使用 Windows,并且不知道您是否有理由将个人 Git 配置保存在 Windows 驱动器中,也不知道 Windows 驱动器权限可能存储的位置,但这就是要查找的位置。要么您的配置应该在其他地方(例如,H:/yourname),以便更容易控制权限,要么您必须对驱动器本身的任何权限进行大惊小怪,而不是驱动器中的任何文件。
| 归档时间: |
|
| 查看次数: |
14127 次 |
| 最近记录: |