git - VSCode git错误:致命:无法读取对象XXX:远程端意外挂断致命:错误:推送失败
问题描述
我厌倦了在 Windows 10 WSL1 上使用 git 2.17.1 将新分支推送到 github。我当时摸索着密码提示,但它超时了。当我再次尝试时,在它至少挂断一次之后,我现在收到以下错误消息:
Pushing to https://github.com/repo/project
fatal: failed to read object <hash>: Permission denied
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'https://github.com/repo/project'
如何撤消此操作,以便再次推送?
解决方案
此消息意味着由于权限问题,无法读取 Git 需要推送的对象之一。
如果这些文件位于 WSL 中的主目录下,请考虑尝试在您的文件上运行类似chmod
或的内容,以便可以访问它们。chown
您可以运行find .git -ls
以显示文件的所有者和权限。目录需要对您的用户具有读取和执行权限,文件需要具有读取权限。
如果您正在寻找一种生硬的方法,您可以这样做(将您的用户替换为bk2204
):
$ sudo chown -R bk2204: .git
$ chmod -R u+rwX .git
如果这是一个 Windows 目录,那么事情就有点棘手了。您需要使用正常的 Windows 权限机制来修改内容。如果您尝试将文件存储在一个特殊的 Windows 目录(如 Documents)中以供 WSL 使用,请不要:Windows 会限制许多程序(包括部分或全部 WSL)对这些目录的访问,并在其中存储需要WSL 可以访问只会导致问题。
推荐阅读
- python - 如何打印出仅包含某些字母的列表元素?
- osgi - .kar Apache Karaf 文件是否仅用于公开功能?
- swift - 如何解决水平滚动和垂直滚动的 CollectionView contentOffSet 问题?
- mysql - group-concat问题,结果错误
- javascript - _react.default.memo 不是函数 | wrapWithConnect 问题
- android - 浮动操作按钮的高度不起作用
- sql - 有没有办法在不循环的情况下应用行更新
- suitecrm - 如何使用getbeans和关系字段
- angular - 动态插入组件时 ControlValueAccessor 不起作用
- c# - 如何在 C# 中打开新窗口而不丢失 xml 布局