我在推送时遇到以下错误,如果我尝试从其他人的计算机推送正在进行..可能是什么问题?在服务器上的git存储库中,我已经为所有用户所属的组提供了写访问权限和安全权限。
$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 275 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: error: object directory /<IP>/<Folder Name>/objects does not exist; check .git/objects/info/alternates.
remote: error: object directory /<IP>/<Folder Name>/objects does not exist; check .git/objects/info/alternates.
remote: error: refs/heads/dev does not point to a valid object!
remote: error: refs/heads/master does not point to a valid object!
remote: fatal: bad object HEAD
error: object directory /<IP>/<Folder Name>/objects does not exist; check .git/objects/info/alternates.
error: refs/heads/dev does not point to a valid object!
error: refs/heads/master does not point to a valid object!
fatal: bad object HEAD
To //<IP>/<Folder Name>/
! [remote rejected] master -> master (missing necessary objects)
error: failed to push some refs to '//<IP>/<Folder Name>/'
答案 0 :(得分:0)
在正常的git push
操作中,有两台计算机,工作两个存储库,使用某种类型的互联网&#34;电话&#34;他们之间的联系。你的计算机上运行的Git将对象(带有丑陋的SHA-1哈希ID)交给他们计算机上的Git,他们的计算机使用适合他们计算机的任何方法将这些对象存储到他们的存储库中,这可能适合也可能不适合为你的。
当您使用纯粹的本地计算机和#34;推送&#34;时,您的计算机将承担两个角色。你的Git必须同时播放发送者,从你计算机上的存储库发送对象,以及接收者,将对象接收到他们计算机上的存储库中。
如果 - 这是一个非常大的&#34;如果&#34;,并且显然在这里出现问题 - 两个存储库真的是在你的计算机上,一切正常,因为你的第二个Git,作为接收器,在你的计算机上本地运行,将对象存储在&#34;他们的&#34;存储库(实际上是您自己的其他存储库),格式适合您的计算机。但如果&#34;他们的&#34;存储库位于网络驱动器上,或者 - 在这种情况下显然正在发生 - 使用可从其计算机访问但不能从您的计算机访问的网络驱动器电脑试图播放它们&#34;并从您的系统访问这些网络驱动器文件,它只是无法正常工作。
有两种解决方案:
设置您的计算机,使其具有与他们相同的访问权限,以便您对共享文件的Git操作与Git对共享文件的操作相同,所以当你的Git&#34;假装成他们时#34;一切正常。
执行此操作的详细信息当然取决于网络驱动器设置。它们将根据操作系统和服务器机器等而有所不同。
停止尝试本地推送:使用他们的计算机,它确实可以访问他们的网络驱动器。将您的对象提供给计算机上的他们的 Git。
答案 1 :(得分:0)
这有点奇怪,但我的机器上安装了2.11v,我将它恢复到2.9v,这基本上是服务器上的git版本,我能够毫无问题地推送到分支机构以及在开发部门。