我能够推得很好,但我突然得到这个“致命”的消息
$ git push
fatal: unable to connect to cache daemon: Bad file descriptor
Username for 'https://github.com':
Password for 'https://myid@github.com':
fatal: unable to connect to cache daemon: Bad file descriptor
...
为什么我突然得到这个消息?我该怎么办?
我不确定这可能会有所帮助,但是从现在到此问题发生之前
编码并在本地成功提交更改后,当我尝试将其推送到远程服务器时,收到以下错误消息
$ git push
致命:无法连接到缓存守护程序:错误的文件描述符 “https://github.com”的用户名: “https://myid0@github.com”的密码: 致命:无法连接到缓存守护程序:错误的文件描述符 致命:松散的物体8ce710b1c78658e066cd2309b12b7766d1be4920(存储在.git / objects / 8c / e710b1c78658e066cd2309b12b7766d1be4920中)已损坏 致命:远程端意外挂断 致命:远程端意外挂断 致命:写错误:文件描述符错误
因此,我备份了我所做的所有更改,删除了repo,从github克隆了repo,并对备份文件进行了一些更改,添加,提交并推送了更改...但仍然该消息不会消失:(
答案 0 :(得分:30)
https://stackoverflow.com/a/14160580
为我解决了这个问题:
sudo chown kev ~/.git-credential-cache/socket
如果您不了解您的用户,请将kev替换为您的用户:
whoami
答案 1 :(得分:3)
当您尝试使用" sudo"提交时会出现此错误。
所以保存的密码是" sudo"仅限用户,
但是当你尝试以普通用户身份提交时, 发生此错误,正常用户的权限被拒绝 你可以通过使用以上答案Kev Price来摆脱这个错误
答案 2 :(得分:1)
谨防操纵~/.git-credential-cache/socket
(与chown
一样),因为它自2014年起已经移动,正如Git 2.13(2017年第二季度)所承认的那样
请commit 612c49e查看commit 60759ba,commit e7f136b(2017年3月17日)和Devin Lehmacher (lehmacdj
)(2017年3月13日)。
(Junio C Hamano -- gitster
--于2017年3月24日commit 78cf8ef合并)
credential-cache:对{
>使用
XDG_CACHE_HOME
让
git-credential-cache
跟随 XDG base path specification 默认。此可提高与其他应用程序的一致性并提供帮助 保持用户的混乱'主目录。检查旧套接字位置
~/.git-credential-cache/
,然后使用~/.git-credential-cache/socket
如果该目录存在而不是 强制之前使用git credential-cache
的用户迁移到 新的XDG兼容位置。否则请使用以下套接字
$XDG_CACHE_HOME/git/credential/socket
XDG基本路径规范。
使用子目录credential/
以防万一 其他文件将在$XDG_CACHE_HOME/git/
下缓存到 使插座的目的明确。
答案 3 :(得分:1)
快速解决方案
这是解决问题所需的单个命令。
sudo chown $(whoami) ~/.cache/git/credential/socket
如果您想更深入地了解导致此问题的原因,请阅读其他答案。
答案 4 :(得分:0)
尝试设置全局gitconfig。
git config --global user.name "your username"
git config --global user.email "your email address"
答案 5 :(得分:0)
可能是由于您首先以root用户身份设置,然后又想将git用作另一个用户。您可以更改git缓存权限:
chown -R用户:user_group〜/ .cache / git /