繁体   English   中英

在 windows 上使用 github 时出现 Permission denied 错误

[英]Permission denied errors when working with github on windows

就在两周前,我正在编写代码,提交并推送到 github 而不用担心。 我刚回来重新开始工作,突然间我无法提交、推送甚至拉取。

推送错误:

Unable to append to .git/logs/refs/remotes/origin/master: Permission Denied
Cannot update the ref 'refs/remotes/origin/master'.

拉取错误:无法 append to.git/logs/refs/remotes/origin/master:权限被拒绝

由于“正在被另一个程序使用”或只读错误,我也无法编辑工作目录中的多个文件,并且我的最后一次提交是Unsynced

I've checked file permissions and my github SSH keys, and tried my best to lookup solutions but it seems this is generally a Unix problem with user permissions and not a Windows one. 我真的不知道在哪里继续寻找。

您之前是否以管理员身份操作?

.git文件夹是否位于受保护的位置?

谁拥有.git文件夹?

以管理员身份运行git shell是否可以解决问题? (请注意,这不是解决方案,而只是一种调试机制,您不应将git用作root)

.git文件夹不受保护,我的用户拥有它。 我之前可能一直以管理员身份运行。

Git 2.37.3(2022 年第三季度)说明了“以前以管理员身份运行”如何产生后果。

确定目录是否可以用作存储库的特定于平台的代码已被教导报告更多详细信息,尤其是在 Windows 上。

请参阅Johannes Schindelin ( dscho )commit 3f7207ecommit 7c83470commit e883e04commit 17d3883commit d51e1df (2022 年 8 月 8 日)。
(由Junio C Hamano -- gitster --提交 7fac7b5中合并,2022 年 8 月 14 日)

mingw :提供有关不安全目录所有权的详细信息

签字人:约翰内斯·辛德林

当 Git 拒绝使用现有存储库时,因为它由当前用户以外的其他人拥有,在 Windows 上弄清楚发生了什么可能有点棘手。

让我们通过提供更详细的信息来帮助解决这个问题。

消息现在将是:

"a/path is owned by:
'xxx'
but the current user is:
'yyy'

但是,您的问题应该得到缓解:

mingw :正确处理管理员组拥有的文件

签字人:约翰内斯·辛德林

Administrator创建文件或目录时,创建的文件/目录不属于Administrator SID,而是属于_AdministratorsSID。
原因是具有管理员权限的用户通常在非特权(“非提升”)模式下运行,而在提升模式下运行时,他们的用户 SID 不会改变。

这是相关的,例如,当在构建代理上运行 GitHub 工作流时,该工作流在提升模式下运行:例如,在脚本步骤中克隆 Git 存储库将导致工作树归管理员组 SID 所有。

让我们按以下方式处理这种情况:

如果当前用户是管理员,则 Git 应将Administrators组拥有的工作树视为该用户拥有。

在 Windows 上,当您是用户xxx (也是管理员)使用最初由“ Administrator ”创建和拥有的文件夹时,不再有“权限被拒绝”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM