这是我第一次遇到这个问题。在修改项目后,我承诺并推动项目。日志如下:
git.exe push --progress "origin" master:master
Enumerating objects: 44, done.
Counting objects: 100% (44/44), done.
Delta compression using up to 4 threads
Compressing objects: 100% (27/27), done.
remote: error: insufficient permission for adding an object to repository database ./objects
remote: fatal: failed to write object
fatal: sha1 file '<stdout>' write error: Broken pipe
error: remote unpack failed: unpack-objects abnormal exit
error: failed to push some refs to 'path'
git did not exit cleanly (exit code 1) (6360 ms @ 2021/10/27 18:50:51)
当您使用git push
或git fetch
(后者包括git pull
,这意味着首先运行,运行git fetch
,然后运行第二个Git命令)时,您将得到两个Git命令。一个在本地机器上运行,例如,您的笔记本电脑,使用您的本地存储库。另一个在处理远程的URL的计算机上运行——在本例中为origin
——并使用由该URL指示的存储库。如果你愿意,你可以把它想象成Git兄弟(也许是Jonathan和Drew ?)。
git push
,你的Git——无论你的机器上运行的是哪一个兄弟,使用你笔记本电脑的存储库——将提交和其他支持对象发送到另一个Git。要么Git会告诉你事情。当你的Git告诉你一些事情时,它只是告诉你它是什么:
Enumerating objects: 44, done.
来自你的Git。
当他们的Git需要告诉你一些事情时,它将消息发送给你的Git,然后它将消息转发给你:
remote: error: insufficient permission ...
所以这个消息来自他们的Git。他们的Git抱怨说他们没有权限将提交和其他支持对象添加到他们自己的数据库中。
这意味着在另一边有问题。你不能在这里解决它;你可能根本无法修复它。你必须在另一台机器上登录。
现在,偶尔,"其他机器";还是你自己的笔记本电脑。在这种(罕见的)情况下,你可以修复它:你只需要给自己权限。但这超出了这个答案的范围,这只是解释为什么当不是您自己的机器时,您不能修复它。(你已经模糊了"路径";在这里,我猜你真的是指一个URL指向其他机器。)