在工作计算机上使用 Windows 上的 Git Gui 已有两年多了。昨晚,repo 工作正常,但今天早上重新启动后,Git Gui 弹出一条有关“权限被拒绝”的消息。
不知道发生了什么变化,尽管我们确实收到一封电子邮件,说公司防病毒更新已推出,需要重新启动。此外,我的计算机上安装了 2022 年 12 月的 Windows 更新,也需要重新启动。
完整的错误消息是:
couldn't open ".git/PREPARE_COMMIT_MSG": permission denied
couldn't open ".git/PREPARE_COMMIT_MSG": permission denied
while executing
"open [gitdir PREPARE_COMMIT_MSG] a"
(procedure "run_prepare_commit_msg_hook" line 8)
invoked from within
"run_prepare_commit_msg_hook"
(procedure "rescan" line 27)
invoked from within
"rescan ui_ready"
(procedure "do_rescan" line 2)
invoked from within
"do_rescan"
("after" script)
我尝试过的事情:
根据具有类似“权限被拒绝”错误的线程中的建议,我从命令提示符运行以下命令:
icacls“路径 o\Work.git”/grant MyUserName:(OI)(CI)F /T
命令执行没有错误,但存储库没有更改。
Ran Git Bash (MINGW64) 运行时不会立即出现任何错误,但只有
git status
可以工作。 git add
给出错误fatal: Unable to create '/path/to/Work/.git/index.lock': Permission denied
在同一台工作计算机上尝试了一个单独的个人存储库,用于托管在 github.com 上的存储库。效果很好(可以提交、拉取等)。
有什么想法吗?我的用户帐户属于管理员组,但看起来 Windows 和“企业防病毒”更新已修改或阻止了与我的用户帐户有关的某些内容。
将 Windows 重新启动至安全模式。现在我可以
git add
和 git commit
,尽管 git push
由于无法解析 dev.azure.com
而失败(与未在安全模式下加载网络有关)。重新启动回到正常 Windows,问题再次出现:git add
和其他命令立即失败,并且 git push
找到 dev.azure.com
,但我收到 permission denied
错误。
根据@LeGEC的评论,我检查了repo
.git
文件夹。没有 PREPRE_COMMIT_MESSAGE
或 index.lock
文件。我尚未触及权限,但在明确允许我的用户“完全控制”该文件夹后,它仍然无法工作 - 仍然是“权限被拒绝”错误。
一位同事不使用 Windows 版 Git,并且在最近更新后没有遇到问题。他建议我尝试 Visual Studio(它直接与
dev.azure.com
绑定)...并且 git 在 Visual Studio 2019 中工作!
因此,我们认为最近的防病毒或组策略更改已撤销、阻止或破坏了我的用户(大概)连接到公司网络和/或 dev.azure.com 的身份验证。 Visual Studio 能够以某种方式对我进行身份验证(通过 Mcicrosoft Azure 帐户?),但在使用我的 Windows 帐户时会失败......这有意义吗?
当我发现更多细节时,我会更新这个问题。
如果有人以前见过这种类型的事情(突然一个应用程序停止使用 git 并出现“权限被拒绝”错误,而另一个应用程序可以工作),我们将不胜感激您的意见!
我在新工作站上遇到了完全相同的问题,我的解决方法是为我的特定用户授予 .git 文件夹的修改权限,即使我已经拥有包括修改权限的完全控制权限。我通过删除我的修改权限并保留完全控制来确认这是必需的,然后再次出现错误。我只能通过给自己修改权限来消除错误。 我什至想到的是,幸运的是,我有一个工作正常的文件夹和一个不在同一工作站上的文件夹,这是唯一的区别。在这两个文件夹上,我都拥有完全控制权,但在正在运行的文件夹上,我也拥有修改权限 ACL。