尝试推送到 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。 我在使用窗户时遇到了这个问题。我相信复制/粘贴时存在字符问题。