Git Remote: Ошибка: фатальная: ошибка протокола: неверный символ длины строки: Unab - PullRequest
97 голосов
/ 17 ноября 2011

Я настроил git-сервер и теперь хочу сначала перенести репо с клиента.Я использовал git push origin master и получаю это сообщение об ошибке:

fatal: protocol error: bad line length character: Unab

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

Я установил сервер с «авторизованными ключами» и SSH.(Я могу подключиться к нему, используя SSH.)

Вроде бы проблема с мерзавцем?

Кстати: сервер настроен на Windows 7 VM

Ответы [ 30 ]

1 голос
/ 28 августа 2015

FYI Я получил то же самое сообщение об ошибке после того, как обновил контейнер CentOS6 до CentOS7 - некоторые операции git начали давать сбой при сборке контейнера, например,

# git remote show origin
fatal: protocol error: bad line length character: Inva

Запуск ssh дал мне ошибку, по которой я мог искать:

# ssh git@bitbucket.org
Invalid clock_id for clock_gettime: 7

Это привело меня к https://github.com/wolfcw/libfaketime/issues/63, где я понял, что забыл, что у меня есть LD_PRELOAD=/usr/local/lib/faketime/libfaketime.so.1 в родительском Dockerfile. Комментирование этого исправило ошибку.

0 голосов
/ 27 января 2012

Проверьте, разрешен ли доступ к серверу на сервере.

0 голосов
/ 07 июля 2017

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

Решение

  1. Сгенерируйте новый ключ и добавьте его в свое git-репо или настройте агент ssh для загрузки ключей, если ключи у вас еще есть, а не с кем-тоеще;)

  2. Еще одно быстрое решение - перейти в каталог .git и отредактировать [remote "origin"] url файла *1013* из git в http так, чтобы ключи ssh былине нужно нажимать, и он вернется к вашему имени пользователя и паролю.

    [remote "origin"]
    url = git@gitlab.*****.com:****/****.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    

Измените на

    [remote "origin"]
    url = http://gitlab.*****.com/****/****.git
    fetch = +refs/heads/*:refs/remotes/origin/*
0 голосов
/ 29 декабря 2012

Ошибка преобразуется в: fatal: ошибка протокола: неверный символ длины строки: fata

после добавления местоположения git-upload-pack в системный путь.

Кажется, проблема вбыть апострофом, добавленным вокруг имени репозитория: поиск с помощью такого инструмента, как Process Monitor (из sys internals), который был добавлен клиентом git.Кажется, это специфическая проблема git для Windows.

Я попытался использовать ту же командную строку в командной строке сервера: полная ошибка была «фатальной: не данный репозиторий (или какой-либо из родительских каталогов):.git "

В заключение мне кажется, что это программная ошибка.Имейте в виду, что я не эксперт по git, я впервые использую git, я прихожу из Subversion и Perce.

0 голосов
/ 16 декабря 2014

Мы тоже столкнулись с этим.

Counting objects: 85, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (38/38), done.
Writing objects: 100% (38/38), 3.38 KiB | 0 bytes/s, done.
Total 38 (delta 33), reused 0 (delta 0)
Auto packing the repository for optimum performance.
fatal: protocol error: bad line length character: Remo
error: error in sideband demultiplexer

Я не знаю ни одной детали о том, что пошло не так, но в нашем случае это вызвало переполнение диска на сервере.1004 *

0 голосов
/ 18 июля 2018

Смена ssh, выполняемого с встроенного на нативное в настройках / управлении версиями / git, добилась цели.

0 голосов
/ 29 апреля 2016

Это может быть безопасный доступ на вашем компьютере, вы используете Pageant (это замазочный агент)?

0 голосов
/ 26 декабря 2016

Ну, у меня была такая же проблема (Windows 7). Попробуйте получить репо по паролю. Я использую Git Bash + Plink (переменная окружения GIT_SSH) + Pageant. Удаление GIT_SSH (временно) помогает мне. Я не знаю, почему я не могу использовать логин по пасс и логин с RSA одновременно ...

0 голосов
/ 28 июня 2019

TL; DR: Не не опускать username@ в удаленных URL-адресах в Windows.

В Linux и в Windows с ssh по умолчанию вы можете опустить имя пользователя из удаленных URL, например:

git clone server-name:/srv/git/repo-name

Поскольку поведение ssh по умолчанию состоит в том, чтобы просто использовать любое имя пользователя, с которым вы сейчас вошли. Если вы работаете в Windows и настроили git на использование plink.exe, чтобы вы могли использовать ключ, загруженный в pageant, это не будет работать, поскольку plink не имеет такого же автоматического поведения имени пользователя, что приводит к в этих загадочных сообщениях об ошибках, потому что он запросит имя пользователя:

$ plink server-name
login as: _

Versus:

$ plink username@server-name
...logs you in...

Если вы уже каким-либо образом клонировали репозиторий, вы можете исправить пульты в вашем .git/config, добавив username@ к удаленному URL.

0 голосов
/ 25 ноября 2016

у вас всегда может быть http ссылка на ваш git проект.Вы можете использовать это вместо ссылки ssh.Это просто вариант, у вас есть

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...