我是git的新手,並且一直關注如何設置集中的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://[email protected][server url]/volume1/git/[project name]
! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to 'ssh://[email protected][server url]/volume1/git/[project name]'
起初,我用GitEye我的客戶端管理git倉庫,但我遇到的問題,當我試圖把我的第一次提交給我的Linux服務器。所以我玩弄了權限並將整個git目錄的所有權遞歸地設置爲用戶「git」。什麼都沒有所以我試圖從服務器上克隆一個裸存儲庫,然後嘗試推送,但是這也不起作用......將我解開包裝錯誤。
因此,我將我的軟件切換到Git Extensions,並嘗試推送Git Bash ...仍然是同樣的錯誤。哦,忘了提到在這個過程中,我不同的時間刪除了我的本地和遠程git倉庫。
雖然有人可能會說這可能是git push over sshfs failing with 「error when closing sha1 file: Bad file descriptor」的重複,但我不使用sshfs,而且我在客戶端運行Windows。
這可能是Git push error - fatal: file '' write error: Bad file descriptor的重複,但推送從未工作過。
更新: 當提及版本時,我想知道服務器和客戶端之間的版本不匹配是否是問題的根源。所以我將我的客戶端git版本從1.9.4降級到1.8.4.msysgit.0,但在刪除並重新創建新的git存儲庫後仍然發現問題。
有趣的是,我也嘗試從客戶端手動複製git倉庫到服務器,並在遠程端執行git狀態。因此,我遇到了錯誤的文件描述符,但該錯誤未出現在客戶端。
任何時候當你看到'remote:'出現錯誤時,它就會從「另一端」(在這種情況下是中央服務器)出現。這個特定的錯誤意味着服務器上的git版本存在一個錯誤。該錯誤可能只是由您的特定客戶觸發的,我不知道真正的錯誤是什麼(不正確的解包,或者沒有注意到包文件中的問題,是兩個明顯的候選人)。我無法從這裏猜出更多,也許別人可以;標識服務器的git版本可能會有所幫助(或者可能不會)。 – torek 2014-09-30 09:46:05
如果有幫助,我的遠程服務器正在運行git 1.8.4.2版本。 – 2014-09-30 09:56:55
這看起來很相關:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=735336 – torek 2014-09-30 16:42:26