2008-12-29 50 views
9

我的一位同事遇到了在他的機器上推送來自git的更改的問題。當他試圖推動他得到以下錯誤Git:無法從一臺計算機上推

 
    D:\Projects\test1\best-practices>git push 
    Counting objects: 4, done. 
    Compressing objects: 100% (2/2), done. 
    Writing objects: 100% (3/3), 273 bytes, done. 
    Total 3 (delta 1), reused 0 (delta 0) 
    error: unable to create temporary sha1 filename ./objects/42: Permission denied 

    fatal: failed to write object 
    error: unpack failed: unpacker exited with error code 
    To //civ3s012/gitrepos/best-practices/.git 
    ! [remote rejected] master -> master (n/a (unpacker error)) 
    error: failed to push some refs to '//civ3s012/gitrepos/best-practices/.git' 

服務器是Windows機器,但是從他的機器,因爲是客戶端 - 如果他登錄到另一臺機器,他能推就好了。沒有其他人有這個問題 - 這似乎是一個服務器權限問題,但我們已經裁定,儘可能我們可以告訴。另外,他可以登錄到另一臺機器並使用相同的用戶名進行推送,這看起來好像不是服務器權限。任何想法可能在這裏出錯?

+1

權限問題是什麼給了我這個錯誤。 – Kzqai 2011-06-27 20:03:43

回答

6

我不是一個Windows用戶,所以我在這裏暗暗地刺了一下。它看起來像掛載了遠程文件系統,你只是推着它(不使用ssh://或git://)。 FS是不是隻讀安裝?他可以在那裏創建/修改文件嗎(git以外)?

+0

我的錯誤是`遠程解壓縮失敗:無法創建臨時對象目錄到// <我的本地計算機>/repository/tutorial3.git`。是的,我使用我自己的Win7機器。你的回答可以幫助我。一旦我更改了存儲庫文件夾的「共享權限」(在'閱讀'旁邊添加'更改'),我可以推送。謝謝。 – user3454439 2017-05-10 09:50:59

0

也許他在他本地的repo中創建了一個分支,該分支已經存在於服務器上,並且ref由於是由別人創建的而無法更新?

+0

他剛剛開始在這個項目上工作,並沒有明確創建任何分支。 – 2008-12-30 15:07:46

3

我知道這是一個簡單易用的系統管理員放風答案,但是你有沒有證實他的硬盤不滿?

+0

是的,這發生在我身上,我現在大部分時間都在檢查。 – 2008-12-30 15:00:27

5

嘗試增加該配置變量到遠程存儲庫:

$ git config core.sharedRepository "all" 
$ git config receive.denyNonFastForwards True 

這些由--shared選項git init通常設置,當回購設置。

我不知道windows權限如何交互,所以我不確定這是否是解決方案。但我知道有時一個linux用戶可以用這種方式在Git遠程中創建具有失敗權限的文件。它發生在他們屬於適當的羣組但沒有作爲他們的主要羣組。將回購共享設置爲all可以解決此問題。

這似乎發生在從SVN或CVS導入的共享回購站中。

+0

這並沒有解決我們的問題 - 作爲一個方面說明,這個回購沒有從SVN或CVS導入,它是從git開始的。不過謝謝。 – 2008-12-30 15:10:28

0

另一個腦死的答案。你確定你有權限閱讀這些文件?在我身上發生過幾次,我會因其他用戶的錯誤而作出更改。後來我無法推動。 Chown是你的朋友。

2

問題最終成爲該共享的存儲密碼,該共享允許讀訪問,但不允許寫訪問。即使我們用適當的用戶名和密碼明確地安裝了驅動器,也必須在後臺使用存儲的密碼,這使得難以追蹤。要清除密碼,我們轉到控制面板,用戶帳戶,單擊高級,管理密碼,並刪除相關服務器的登錄信息。之後,所有事情都應該如此。我接受Pat Notz的回答,因爲它最終成爲只讀FS。謝謝!

+0

感謝您發佈根本問題和解決方案的細節! – 2009-01-04 10:32:20

相關問題