我的一个同事正在解决他的机器上的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机器,客户端也是如此.没有其他人遇到这个问题 - 这似乎是一个服务器权限问题,但我们已经根据我们的判断排除了这一点.此外,他可以使用相同的用户名登录到另一台计算机并进行推送,这使得它看起来不是服务器权限.有什么想法可能会出错吗?
我在与我的gitolite存储库相同的服务器上安装了Redmine.
为了将我的存储库链接到我的Redmine实例,我使用以下命令在本地克隆了repo:
git clone --bare --local /home/git/repositories/my-repo.git
Run Code Online (Sandbox Code Playgroud)
就像我在服务器上成功克隆了repo一样,我可以像预期的那样浏览Redmine上的repo.
问题是,一旦我这样做,我就不能再向本地机器上的远程仓库推送任何东西了.
当我尝试
git push
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Counting objects: 15, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (8/8), 695 bytes, done.
Total 8 (delta 6), reused 0 (delta 0)
fatal: loose object 455f30c5243ec5b5cc698b1e51bdfb23ee6c1b22 (stored in ./objects/45/5f30c5243ec5b5cc698b1e51bdfb23ee6c1b22) is corrupt
error: unpack failed: unpack-objects abnormal exit
To git@dev.my-host.org:my-repo.git
! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'git@my-host.org:my-repo.git'
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
编辑#1 …
我能够拉,但无法git推
$ git push -u origin master
Counting objects: 2031, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1367/1367), done.
remote: fatal: early EOF
Writing objects: 100% (2031/2031), 34.33 MiB | 100.00 KiB/s, done.
Total 2031 (delta 659), reused 1056 (delta 324)
error: unpack failed: index-pack abnormal exit
To https://*********.git
! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to 'https://*********
Run Code Online (Sandbox Code Playgroud)
我试过了 :
我已经提到了以下链接,但没有什么对我有用
我已经看到了几个类似的 问题,但是还没能解决我的问题,所以再问一遍.
我在现有的启用git的项目中添加了大量新文件,并尝试将其推送.当我执行推送时,它会压缩它们,然后写入它们,然后当它达到%100时,它会因此错误而失败:
error: index-pack died of signal 9 332.28 MiB | 5712 KiB/s
error: pack-objects died with strange error
error: failed to push some refs to '<username>@<my repo location'
Run Code Online (Sandbox Code Playgroud)
到目前为止我尝试过的事情:
进入回购并确保一切都是可写的,就像这里建议的那样
binary -delta在.gitattributes中的某些文件类型上设置选项
将一些文件夹移出(和git提交删除),以便稍后再单独添加它们.
我有点想法......:/有什么建议吗?感谢任何建议 - 最多
编辑 - 我已经发现这是由于dreamhost因为过多的内存消耗而导致推送(我通过将我的app文件夹复制到dreamhost上的repo服务器并从那里进行推送).
我找到了一些页面, - 谈论NO_MMAP=1git中的一个选项来帮助防止这种情况,但是他们在配置git时会谈到它.我可以在现有的git安装中设置此选项吗?它是git-inited应用程序的配置的一部分正在进行推送还是它是repo配置的一部分?
编辑2 - 按照上面的页面上的说明,我下载并制作了我自己的本地git二进制文件,并设置了NO_MMAP = 1选项.
我确定这些是在我的路径中安装了dreamhost的版本之前,并且"哪个git"显示了我的本地版本,到目前为止一切都很好.但是,我得到完全相同的问题.
我是否需要使用我的仓库做一些事情来使NO_MMAP选项工作,或者你认为问题是什么?