2014-09-30 100 views
2

我是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狀態。因此,我遇到了錯誤的文件描述符,但該錯誤未出現在客戶端。

+0

任何時候當你看到'remote:'出現錯誤時,它就會從「另一端」(在這種情況下是中央服務器)出現。這個特定的錯誤意味着服務器上的git版本存在一個錯誤。該錯誤可能只是由您的特定客戶觸發的,我不知道真正的錯誤是什麼(不正確的解包,或者沒有注意到包文件中的問題,是兩個明顯的候選人)。我無法從這裏猜出更多,也許別人可以;標識服務器的git版本可能會有所幫助(或者可能不會)。 – torek 2014-09-30 09:46:05

+0

如果有幫助,我的遠程服務器正在運行git 1.8.4.2版本。 – 2014-09-30 09:56:55

+0

這看起來很相關:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=735336 – torek 2014-09-30 16:42:26

回答

2

我發現了問題的根源。我試圖在我的遠程端執行第一次提交,並得到「沒有有效的對象」錯誤。因此,我在遠程方面構建了一個糟糕的git。感謝您的指導。它指向我尋找正確的道路。

現在我必須弄清楚如何在不使用ipkg的情況下爲我的遠程平臺獲得更新(或不同)的git版本。