Git克隆fsync错误,权限被拒绝

时间:2014-10-06 14:04:46

标签: git

我尝试使用:sudo git clone https://github.com/sonata-project/SonataAdminBundle test

克隆一个git repo

我有这个输出:

Cloning into 'test'...
remote: Counting objects: 24066, done.
remote: Compressing objects: 100% (60/60), done.
remote: Total 24066 (delta 28), reused 5 (delta 2)
Receiving objects: 100% (24066/24066), 13.43 MiB | 2.11 MiB/s, done.
Resolving deltas: 100% (11983/11983), done.
fatal: fsync error on '/vagrant/test/.git/objects/pack/tmp_idx_KWLQBb': Permission denied
fatal: index-pack failed

我该怎么办?

3 个答案:

答案 0 :(得分:0)

这似乎是一个许可问题。就在文件夹上做:

sudo chown -R youruser .

您执行 git clone 时的文件夹)

答案 1 :(得分:0)

当当前文件夹位于以NTFS格式化的USB驱动器上时,出现此错误。使用ext4格式化的驱动器可以正常工作。

$ uname -a
Linux 3.13.0-44-generic #73-Ubuntu SMP Tue Dec 16 00:22:43 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

$ git --version
git version 1.9.1

答案 2 :(得分:0)

某些文件系统不支持fsync()系统调用,例如NFS,sshfs,...

某些git操作(例如克隆,推送(如果远程回购在该文件系统上)等)将失败,并出现fsync:...权限被拒绝

在Linux上,解决方案是“ eatmydata”(易于安装eatmydata)

它是一个包装器/预加载的libc覆盖,可模拟fsync()调用而无需实际执行。

缺点是,如果在git操作过程中文件系统消失(网络错误,电源中断,木棍被拔出……),这会稍微增加损坏存储库的风险。