尝试推送到git存储库,我收到错误fatal: protocol error: bad line length character: logi
。我能够正常运行git clone
,这只是推动不起作用。
涉及的工具:
Per this answer,我尝试了plink <site> git-receive-pack <directory>
,但得到了fatal: bad argument
。其他能够成功推进回购的人也是如此。
我的权限与其他可以推送回购的用户相同。
另一个人尝试使用Git for Windows,它对他们来说很好。
我已经能够使用完全相同的SSH密钥通过同一主机上的Eclipse插件成功推送到SVN。
以详细模式运行Plink,我确认它正在从Pageant中检索正确的密钥。
答案 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 时遇到了这个问题。我认为复制/粘贴时存在字符问题。