Git:致命:协议错误:行长字符:logi

时间:2018-01-11 21:28:04

标签: git

尝试推送到git存储库,我收到错误fatal: protocol error: bad line length character: logi。我能够正常运行git clone,这只是推动不起作用。

涉及的工具:

  • Git for Windows
  • 的Plink
  • 佳丽

Per this answer,我尝试了plink <site> git-receive-pack <directory>,但得到了fatal: bad argument。其他能够成功推进回购的人也是如此。

我的权限与其他可以推送回购的用户相同。

另一个人尝试使用Git for Windows,它对他们来说很好。

我已经能够使用完全相同的SSH密钥通过同一主机上的Eclipse插件成功推送到SVN。

以详细模式运行Plink,我确认它正在从Pageant中检索正确的密钥。

6 个答案:

答案 0 :(得分:2)

所以这里的解决方案最终对我有用,经过几周的挫折和搜索:重新安装Git for Windows,只设置它使用它带来的ssh.exe,而不是Plink。我从来没有弄清楚完整的潜在错误是什么,而Plink对我来说工作得很好,但这解决了它。

答案 1 :(得分:0)

我通过省略密钥ID收到了相同的错误。例如:

git clone ssh://git-codecommit.us-west-2.amazonaws.com/v1/repos/xxxxxx

将您要查询的问题告诉我

git clone ssh://APK-----------@git-codecommit.us-west-2.amazonaws.com/v1/repos/XXXXXXX

确保一切正常

答案 2 :(得分:0)

我通过将用户名放在主机名的前面来解决了这个问题。 例如

t1

成为

git clone ssh://github.com/organization/repo

答案 3 :(得分:0)

我在Windows上使用ssh协议和带有putty / plink的子模块时遇到了这个问题。 .gitmodules文件未指定协议或用户,仅指定域和存储库。使用plink时似乎只有问题(Windows上的gitbash很好,Linux或MacOS上没有问题):

[submodule "my_module"]
    path = my_module
    branch = branch_name_1
    url = git.ourgitserver.com:the_module.git

如果我尝试执行git子模块初始化和git子模块更新,则会收到错误消息。

fatal: protocol error: bad line length character: logi

解决方案是更正您初始化的.gitmodules网址 之前 。初始化后似乎没有办法解决此问题。

因此,删除主存储库的本地目录,然后执行git clone ...。立即打开.gitmodules并添加用户git@

[submodule "my_module"]
    path = my_module
    branch = branch_name_1
    url = git@git.ourgitserver.com:the_module.git

之后 执行git submodule init并正常进行。我实际上没有将该更改保存到.gitmodules文件,因为,好吧,我不允许这样做。您只需再次签出(删除)更改,然后诅咒不允许您更新.gitmodules文件的人员。正确初始化后,该问题不会再次发生。

答案 4 :(得分:0)

我还有另一个角度要补充,我在上面没有看到。如果您在远程(服务器)端有一个健谈的 .bashrc 或 .login 文件,这可能会干扰通信。例如,我收到了这个神秘的错误。 (注意:我不是通过 ssh 连接到本地主机;我实际上是通过一个包装脚本进行隧道传输)。

rcook@linode:~/current_projects$ git clone -vvv ssh://rcook@localhost:/Volumes/2_TB_SSD_external/current_projects_2TB/gitrepos/RC_bash_lib RC_bash_lib.new
Cloning into 'RC_bash_lib.new'...
Password:
fatal: protocol error: bad line length character: sour

嗯?有什么酸的?它是什么,在我的远程主机上的 .bashrc 文件中,我有这一行:

echo sourcing bashrc

... 作为调试工具。我忘了关掉它,它破坏了我的 git 会话。希望这能帮助其他一些可怜的傻瓜。

答案 5 :(得分:0)

如果是新建项目,可以删除隐藏在你文件夹项目中的git文件夹。 然后尝试在 GitBash 上输入 HTTPS,而不是 Ctrl+C Ctrl+V。 我在使用 windows 时遇到了这个问题。我认为复制/粘贴时存在字符问题。