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



尝试推送到 git 存储库时,我收到错误fatal: protocol error: bad line length character: logi.我能够跑git clone很好,只是推动不起作用。

涉及的工具:

  • Git for Windows
  • 普林克
  • 选美

根据这个答案,我尝试了plink <site> git-receive-pack <directory>但得到了fatal: bad argument.其他能够成功推送到回购的人也是如此。

我的权限与可以推送到存储库的其他人相同。

另一个人尝试了 Git for Windows,它对他们来说效果很好。

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

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

我通过将用户名放在主机名前面来克服这个问题。 例如

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

成为

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

因此,经过数周的沮丧和搜索,最终对我有用的解决方案是:重新安装适用于Windows的Git,仅将其设置为使用ssh.exe它带来的,而不是Plink。我从来没有发现完整的潜在错误是什么,否则 Plink 对我来说工作得很好,但这解决了它。

我通过省略密钥 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

使一切顺利进行

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

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 会话。 希望这能帮助其他可怜的傻瓜。

我在 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 url。初始化后似乎没有办法解决问题。

因此,删除主存储库的本地目录,然后执行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 文件的人。正确初始化后,问题不会再次出现。

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

最新更新