Linux Git初始推送错误文件描述符错误

Linux Git初始推送错误文件描述符错误,linux,git,bash,Linux,Git,Bash,我是git新手,一直在学习各种关于设置集中式git服务器的教程。在过去的几天里,我一直遇到以下错误消息的问题: Counting objects: 59, done. Delta compression using up to 2 threads. Compressing objects: 100% (59/59), done. Writing objects: 100% (59/59), 525.33 KiB | 0 bytes/s, done. Total 59 (delta 15), re

我是git新手,一直在学习各种关于设置集中式git服务器的教程。在过去的几天里,我一直遇到以下错误消息的问题:

Counting objects: 59, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (59/59), done.
Writing objects: 100% (59/59), 525.33 KiB | 0 bytes/s, done.
Total 59 (delta 15), reused 0 (delta 0)
remote: fatal: failed to read object 24e3826fe4be7dbaddbfcd698e943b5b8f9598ec : Bad file descriptor
error: unpack failed: unpack-objects abnormal exit
To ssh://git@[server url]/volume1/git/[project name]
 ! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to 'ssh://git@[server url]/volume1/git/[project name]'
最初,我在客户端使用GitEye来管理git存储库,但在尝试将第一次提交推送到linux服务器时遇到了问题。所以我使用了权限,并将整个git目录的所有权递归地设置为用户“git”。什么都不管用。因此,我尝试从服务器克隆一个裸存储库,然后尝试推送,但也不起作用…返回解包错误

所以我将我的软件切换到Git扩展,并尝试在Git Bash上推送…仍然是相同的错误。哦,忘了提到在这个过程中,我多次删除了我的本地和远程git存储库

虽然有人可能会说这可能是的复制品,但我不使用sshfs,我在客户端运行Windows

这可能是的副本,但推送以前从未工作过

更新: 说到版本,我想知道服务器和客户端之间的版本不匹配是否是问题的根源。因此,我将客户端git版本从1.9.4降级到1.8.4.msysgit.0,但在删除并重新创建新的git存储库后仍然发现了问题


但有趣的是,我还尝试手动将git存储库从客户端复制到服务器,并在远程端执行git状态。因此,我遇到了错误的文件描述符,但该错误没有出现在客户端。

我找到了问题的根源。我尝试在远程端执行第一次提交,但出现了“not a valid object”错误。因此,我在远程端有一个糟糕的git构建。谢谢你的指导。它为我指明了正确的道路


现在,我必须考虑如何在不必使用ipkg的情况下为我的远程平台获取更新(或不同)版本的git。

每当您看到
remote:
出现错误时,它都来自“另一端”(本例中的中央服务器)。此特定错误意味着服务器上的git版本中存在错误。这个bug可能只是由您的特定客户机触发的,我不知道真正的bug是什么(不正确的解包,或者没有注意到包文件中的问题,这两个明显的候选者)。从这里我猜不出更多,也许其他人可以;识别服务器git版本可能有帮助(也可能没有)。如果有帮助,我的远程服务器正在运行git版本1.8.4.2。这看起来很相关:我查看了错误的链接。这似乎是一个不同于我的问题。它遇到了一个丢失的树,而我的只是一个不好的文件描述符。这可能不同,但我可以看到它会如何导致相同的行为,瘦包中缺少某些内容,一些代码尝试使用丢失的项,假设它没有丢失,并且根据错误检查,您会得到“丢失的树”(他们检查了open()的返回值)或“坏文件描述符”(他们没有),但我不知道。