首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git推送sshfs失败,并显示“关闭sha1文件时出错:文件描述符错误”

git推送sshfs失败,并显示“关闭sha1文件时出错:文件描述符错误”
EN

Stack Overflow用户
提问于 2011-01-28 01:40:31
回答 2查看 2.7K关注 0票数 3

我们使用sshfs通过SSH挂载文件系统,并将其用作git存储库协作的远程存储。

MacFUSE OSX 10.6.6到RHEL 3服务器SSHFS版本2.2 ( Mac SSHFS 2.2.0)

MacFUSE库版本: FUSE 2.7.3 / MacFUSE 2.0.3

sshfs -o workaround=rename gituser@gitserver.ourdomain.com:/path/to/directory ~/git

下面是我们如何创建我们的repo,在本地使用它们,然后尝试推送回服务器:

代码语言:javascript
复制
cd ~/git/mypersonaluser
git init --bare --share mynewrepo.git
git clone ~/git/mypersonaluser/mynewrepo.git ~/Desktop/mynewrepo
cd ~/Desktop/mynewrepo
... make a few edits to the repo ...
git push origin master

Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 20.82 KiB | 23 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0)
fatal: error when closing sha1 file: Bad file descriptor
error: unpack failed: unpack-objects abnormal exit
To /Users/joebob/git/mypersonaluser/mynewrepo.git/
 ! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to '/Users/joebob/git/mypersonaluser/mynewrepo.git/'

奇怪的是,对repo推送的小编辑似乎成功了,但多个新文件或大量编辑的大提交不起作用。

我们是sshfs和MacFuse的新手,但是git的中级用户。

有什么想法或建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-15 04:05:39

我们从未找到在sshfs上挂载服务器时遇到的问题的修复方法。但我的一位同事确实知道了如何在RHEL 3服务器上的单个帐户中本地安装git二进制文件,我们现在可以通过SSH与我们的远程存储库通信,现在SSH可以完美地工作。

以下是他使用的安装命令,通过SSH登录到您的服务器时应使用这些命令:

代码语言:javascript
复制
curl -O http://kernel.org/pub/software/scm/git/git-1.7.4.1.tar.gz
tar xvfz git-1.7.4.1.tar.gz
cd git-1.7.4.1
./configure --prefix=$HOME CFLAGS='-I/usr/kerberos/include'
make SHELL="/bin/bash" install

接下来,通过在服务器上编辑bin并在末尾添加以下行,将远程帐户的PATH目录添加到服务器帐户的~/.bashrc

代码语言:javascript
复制
export PATH=$PATH:$HOME/bin

然后,您可以在开发计算机上定义一个远程存储库位置并推送到该位置。

代码语言:javascript
复制
git add remote myremote ssh://myuser@server.domain.com/home/myuser/path/to/repo.git
git push myremote branchnamehere
票数 0
EN

Stack Overflow用户

发布于 2011-01-28 01:52:56

Git可以在本地推送SSH,而不必将服务器挂载到本地文件系统。我建议你试试这个:

代码语言:javascript
复制
git push gituser@gitserver.ourdomain.com:/path/to/directory master

如果可以,只需将源遥控器从~/git改为gituser@gitserver.ourdomain.com:/path/to/directory即可

如果它不工作,它至少也会告诉我们MacFuse或sshfs不是罪魁祸首。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4819834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档