Невозможно подключиться к демону кэша?

Я могу подтолкнуть, но я внезапно получаю это "фатальное" сообщение

$ git push
fatal: unable to connect to cache daemon: Bad file descriptor
Username for 'https://github.com':
Password for 'https://[email protected]':
fatal: unable to connect to cache daemon: Bad file descriptor
...

Почему я получаю это сообщение внезапно? и что мне делать?

Я не уверен, что это может помочь, но между этим и предыдущим случаем произошла ошибка

  • Я работал над какой-то веткой, которая не является мастером.
  • Я изменил свой user.email в git config --global в середине
  • Мой компьютер сильно разбился, потому что я подключил к нему неправильный соединитель проекта (это не для компьютера), и я считаю, что каким-то образом файл поврежден.
  • После этого, когда я попытался создать новый коммит, я получил следующее сообщение: fatal: Не удалось разрешить HEAD как действительный номер ссылки.
  • Затем я исправил его, изменив HEAD в config на "ref: refs/heads/master"
  • После кодирования и успешной фиксации изменений локально, когда я попытался нажать его на удаленный сервер, я получил следующее сообщение об ошибке

    $git нажмите

    fatal: невозможно подключиться к демону кэша: неверный дескриптор файла Имя пользователя для https://github.com: Пароль для 'https://[email protected]': fatal: невозможно подключиться к демону кэша: дескриптор Bad файла фатальный: свободный объект 8ce710b1c78658e066cd2309b12b7766d1be4920 (хранится в .git/objects/8c/e710b1c78658e066cd2309b12b7766d1be4920) поврежден фатальный: удаленный конец неожиданно повесил трубку фатальный: удаленный конец неожиданно повесил трубку fatal: ошибка записи: дескриптор Bad файла

  • Итак, я сделал резервную копию всех изменений, которые я сделал, удалил репо, клонировал репо из github и внес некоторые изменения в файлы резервных копий, добавил, зафиксировал и сделал точные изменения... но все же это сообщение не исчезает:(

Ответ 1

fooobar.com/questions/483166/...

решил это для меня:

sudo chown kev ~/.git-credential-cache/socket

замените kev на пользователя, если вы не знаете своего пользователя:

whoami

Ответ 2

Эта ошибка возникает, когда вы пытаетесь совершить использование с помощью "sudo".
поэтому сохраненный пароль предназначен только для пользователя "sudo",

Но когда вы пытаетесь совершить как обычный пользователь,
Эта ошибка возникает, разрешение отклонено для обычного пользователя
вы можете избавиться от этой ошибки, используя выше ответ Kev Price

Ответ 3

Остерегайтесь манипулирования ~/.git-credential-cache/socket (как с chown), поскольку он переместился с 2014 года, как подтверждение через Git 2.13 (Q2 2017)

См. commit 612c49e, совершить 60759ba ( 17 марта 2017 г.) и совершить e7f136b (13 марта 2017 г.) Девин Лехмахер (lehmacdj).
(слияние Юнио С Хамано - gitster - в commit 78cf8ef, 24 марта 2017 г.

credential-cache: используйте XDG_CACHE_HOME для сокета

Сделайте git-credential-cache следуйте спецификация базового пути XDGпо умолчанию. Этот повышает согласованность с другими приложениями и помогает держите загромождение из домашних каталогов пользователей.

Проверьте расположение старого сокета, ~/.git-credential-cache/ и используйте ~/.git-credential-cache/socket, если этот каталог существует, а не заставляя пользователей, которые раньше использовали git credential-cache, чтобы перейти на новое место, соответствующее XDG.

В противном случае используйте сокет $XDG_CACHE_HOME/git/credential/socket, следующий Спецификация базового пути XDG.
Используйте подкаталог credential/ в случае другие файлы кэшируются в $XDG_CACHE_HOME/git/ в будущем и сделать назначение сокета ясным.

Ответ 4

Попробуйте установить глобальный gitconfig.

git config --global user.name "your username"
git config --global user.email "your email address"