2010-09-30 244 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