2010-09-30 56 views
14

當我在Windows上使用samba共享git時,當我想通過git_extentions或tortoiseGIT提交文件時出現錯誤。 錯誤是: 錯誤:無法寫入sha1文件名.git/objects/b4/e819f886bf31b67c42249a0eff8e8b16cf7622:權限被拒絕 當我通過Ubuntu服務器添加文件並提交文件時,它工作正常。 我也在banrch工作。Git over samba - 無法寫入sha1文件名|權限被拒絕

我已經嘗試chmod 777整個.git文件夾。

+0

什麼桑巴配置文件的樣子,並且是用戶一樣什麼混帳期待? – dkinzer 2010-11-01 14:40:27

+0

這個問題剛剛開始發生在我身上!我將msysGit更新爲v1.7.6.msysgit.0,但通過samba共享連接的服務器上有v1.7.2.1。 1.我不知道我之前有哪個msysGit來恢復測試。 2.升級服務器版本以查看是否有幫助。 – 2011-07-20 10:13:58

+0

好的,這沒有幫助。運行在我的服務器上的v1.7.2.1。當我開始使用PortableGit進行其他操作時,這一切都開始發生,而且它也發生了! – 2011-07-20 10:40:56

回答

0

可能samba阻止點文件?爲什麼不使用ssh而不是samba來推送?

+0

點文件未被阻止,並被視爲窗口中的隱藏文件。 你怎麼用ssh推動?通過命令行提交文件工作正常。 – InfoTracer 2010-09-30 10:50:12

+0

我在samba上使用git,因爲我在Windows上開發,但我的測試服務器是ubuntu。這意味着我不必每次都想部署測試。 – Nathan 2011-01-23 14:04:56

5

我也見過這個。這是一個git缺陷,可能與它如何創建和修改文件有關。爲了澄清這個問題:

# mount a samba share locally. 
$ mount -t cifs options //share/project /mnt/project 

# The share contains a git checkout. 
# Do some typical development. 
$ cd /mnt/project 
$ vi file ## ok 
$ git pull ## ok 
$ git status ## ok 
$ git add file ## error! 
    error: unable to create temporary sha1 filename 
    .git/objects/8b/tmp_obj_mYE1Xi: Permission denied 


## But everything from the shell seems to work. 
$ ls -latr .git/objects/8b/ ## ok. empty dir. 
$ touch .git/objects/8b/tmp_obj_mYE1Xi ## ok. 
$ echo test123> .git/objects/8b/tmp_obj_mYE1Xi ## ok. 
$ cat .git/objects/8b/tmp_obj_mYE1Xi ## ok. 
test123 
$ rm .git/objects/8b/tmp_obj_mYE1Xi ## ok. 

在Git版本1.5.6.5(最新Debian軟件包),當您嘗試git-add得到錯誤。如果你安裝了git 1.7.3.2(最新版本),你可以添加這個文件,但是當你嘗試提交時你會得到錯誤。

+0

啊,這真讓人討厭!我只是在使用PortableGit和/或升級mSysgit後纔開始出現此問題! – 2011-07-20 12:44:06

4

此問題以前曾以某種形式或其他方式用於Git/Samba安裝。不知道,如果問題的根源已經銷還指出:

http://code.google.com/p/msysgit/issues/detail?id=130#makechanges

更新:

看起來像git的v 1.7.3.3已經解決了這個問題。

+0

我實際上更新了鏈接頁面中提到的samba,它爲我工作。 http://code.google.com/p/msysgit/issues/detail?id=130#c21 – Broote 2011-07-19 00:30:57

+2

我在我的服務器上使用了v1.7.6.msysgit.0和v1.7.2.1,但仍然看到這個!? – 2011-07-20 10:46:59

+0

在Git-1.9.5-preview20141217上仍然出現問題 – 2015-03-04 03:11:25

3

好的,我找到了一個適合我的解決方案。

我一直在使用git over samba (samba-common-3.0.33-3.7.el5)適合年齡沒有問題的年齡。

我升級了git到Git-1.7.6-preview20110708,這一切都去了鍋!作爲一名有條不紊的開發者,我沒有寫下我升級的東西!

因此,我瀏覽了以前的發行版,並在Git-1.7.0.2-preview20100309旁邊看到了一顆星,所以有點舊了,但把它放在....和砰......它的工作原理!

+0

這兩個鏈接現在都被打破了。 'apt-get install git = 1.7.0.2'會產生'未找到'git'的版本'1.7.0.2'。現在怎麼辦? – poshest 2015-11-16 13:40:34

1

我們今天開始使用git。版本1.7.10對於win7機器來說很好。在winXP上,我們發生了給定的錯誤。對於那些機器,我們降級到1.7.0.2,正如伊恩在帖子中說的那樣,現在它已經可以工作了。

0

在我的情況下,它是Windows上的反病毒軟件鎖定文件。暫時禁用防病毒解決了問題。

0

我回答過這個問題了here以及

對我來說,它看起來像的Git(V 2.6.3)試圖在Samba驅動器上創建自己的讀/寫權限。這將防止電池組的文件和/或對象從獲取寫入(解包誤差)

remote: error: unable to write sha1 filename ./objects/pack/pack-<some_hex_string>.pack: Permission denied 
remote: fatal: cannot store pack file 
error: unpack failed: index-pack abnormal exit 
To z:\git\<repo name> 
! [remote rejected] master -> master (unpacker error) 
error: failed to push some refs 

我去來回試圖修復。最後,由於我控制了Samba機器,我在samba驅動器配置中添加了一行,表示「inherit permissions = yes」。我重新啓動桑巴並試圖推動。有效!

這對我有用,因爲我是唯一使用Samba服務器的人。對於其他人,你可以玩「強制目錄模式」或「強制創建模式」。你可以找到人網頁對於那些在這裏:

https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/AccessControls.html

相關問題