фатальный: неверное значение конфигурации для «receive.denycurrentbranch» в ./config - PullRequest
1 голос
/ 11 июля 2019

Я использую git для отправки зафиксированных изменений в репозиторий, который находится на сервере.Теперь есть эта ошибка:

$ git push -u origin master
fatal: bad config value for 'receive.denycurrentbranch' in ./config
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Как это выглядит в окне консоли

Теперь я предполагаю, что эта ошибка может быть связана с некоторыми сбоями в SSHподключение.Я использую PuTTY для подключения через SSH к моему веб-серверу.Тем не менее, я все еще новичок, и я не знаю точно, как это работает.

Итак, я попробовал, чтобы я сгенерировал закрытый ключ онлайн, скачал его, перевел его в формат PPK ипоместите его во вкладку аутентификации в PuTTY.Когда я вхожу через PuTTY, мне нужно ввести ключевую фразу, а затем ей удается подключиться без ошибок.

Ошибка только в git bash.Так как я могу это исправить там?Нужно ли как-то указывать Git использовать PuTTY в качестве моего SSH-агента (что вообще такое SSH-агент?).Или Git по умолчанию использует OpenSSH из Windows 10?

Я также пытался использовать

$ eval $(ssh-agent -s)
$ ssh-add ~/.ssh/id_rsa

, но я точно не знаю, что он делает.Он только запускает OpenSSH-Agent?

Если бы кто-то мог немного прояснить ситуацию для меня, я был бы более чем счастлив.Я гуглил около дня, и хотя кусочки медленно собирались вместе, я не смог решить эту конкретную проблему.Спасибо!:)

Обновление 19.7.19

Проблема все еще не решена полностью.Да, установка receive.denycurrentbranch на ignore или refuse на стороне сервера приводит к исчезновению ошибки.Я могу нажать, однако нет файлов, показывающих.По-видимому, в репо сохраняются только коммиты, а не сами файлы.Как я понял, мне нужна опция updateInstead, которая позволяет существовать не пустым репозиториям (репозиторий с реальными файлами вместо просто коммитов), чтобы сервер мог взять эти файлы из репо и развернуть их в моей папке public_html..

Моя версия git для сервера - 2.19.1, что, по-видимому, выше, чем версия 2.4.0, которая требуется для интерпретации updateInstead -Параметра.Поэтому для меня все еще остается загадкой, почему появляется эта ошибка.

Я сейчас пытаюсь установить новую версию git на свой сервер, чтобы посмотреть, изменит ли это что-нибудь.Однако там я столкнулся с другой проблемой.Пожалуйста, посетите эту тему .

1 Ответ

0 голосов
/ 11 июля 2019

Проблема, которую вы видите, состоит в том, что вы установили недопустимое значение конфигурации для опции receive.denycurrentbranch. Из вашего окна консоли выглядит, что у вас есть версия Git, которая не понимает значение refuse (или вы ввели что-то вроде неразрывного пробела в значении).

Вы должны знать, что это значение относится только к стороне сервера . Установка его на стороне клиента не имеет никакого эффекта. Вы должны удалить его из вашей конфигурации, отредактировав файл config (или .git/config, в зависимости от ситуации) и удалив соответствующую опцию, которая должна заставить нажатия работать снова.

...