git在Windows上:致命的:协议错误:坏行字符:@ –

我在Windows上使用SourceTree + Git没有任何问题。 我能够从命令(terminal/ BASH)使用git命令。 我更喜欢用git推/拉等terminal。不幸的是,重新安装我的机器(服务器/ git是相同的)后,我得到这个痛苦的错误。

在新机器上,我安装了Git 1.9.5(Git-1.9.5-preview20141217.exe),并configuration为只使用BASH,并使用正确的SSH密钥文件进行plink。

我可以做git log我的仓库,但是git pull或者git push会给出这个错误:

 me@NEW-MACHINE /c/Workspace/project (master) $ git pull fatal: protocol error: bad line length character: @- ERROR: Problem parsing the command line arguments. 

当然,我search了很多关于“致命的:协议错误:坏行长度”的文章。 但是,找不到任何线索。

有趣的是,在SourceTree上,我可以做成git pullpush 。 我只在BASHterminal得到这个错误。 请注意,SourceTree不使用embedded式的git。

以下是我的调查到目前为止:

  • 我安装了旧版本的git(1.8.x),仍然出现错误。
  • 移动.bashrc,但不好。
  • 显然,SourceTree并不像SourceTree那样使用embedded式Git。
  • 服务器在Github(企业,私人)。
  • 我在使用相同的git存储库/服务器的Linux上使用任何git命令没有问题。

我的线索是从错误消息中的<newline>@-<newline> 。 这更像是一个Windows / BASH特定问题。 我不知道是什么原因导致“@ – ”。

编辑 :我试过这个线程的build议,但没有解决我的问题。 git服务器是github.mycompany.com ,它不允许任何ssh连接。

Solutions Collecting From Web of "git在Windows上:致命的:协议错误:坏行字符:@ –"

您可以完全通过以下方式规避bash-ssh问题:

  • git-cmd.bat启动一个DOS shell(包装在你的Git for Windows msysgit发行版中)
  • 使用git克隆使用您的远程回购的正确的https url创建一个新的克隆。

那是:

 git clone https://<yourAccount>@github.mycompany.com/<yourAccount>/<yourRepo> 

既然在这种情况下你将使用https协议,那么在git pull(而不是ssh协议:请参阅Smart Protocols )中将不会有任何shell会话,并且不应该看到任何额外的消息,如fatal: protocol error: bad line length character

我有同样的问题在Windows中的混帐。 通过Pageant App(Putty身份验证代理)加载您的公钥/私钥。 添加私人/公共密钥 。