[エラー] Bad Line Length Character: Sysl

とあるタイミングでheroku上のgitからフェッチしようとすると、
タイトルのようなエラーが出た。

エラー内容。

$ git fetch staging
Fetching repositoryfatal: protocol error: bad line length character: Sysl

環境は、herokuで、ここで書いたとおり、ローカルでブランチを切って、
それぞれのブランチでリモートのプッシュ先を変えて管理している。
ここでは、staging環境の分をフェッチしたかった。

heroku関連として全く同じ内容のエラーがStackOverFlowに投稿されていたが、
どうやら解決はしていないよう。

Git Error: bad line length character: Sysl

ググってみると、リモート先のサーバーにsshでログインする時に表示されるメッセージが悪いとか、
ssh関連で、.bashrcとか.zshrcとかの設定を見なおしたよ、というような内容が多い。

protocol error: bad line length character と出たら – #9 Backyard
gitのエラー解決方法 – Shut the fuck up and write some code
fatal: protocol error: bad line length character: # Us – きもい交換日記

しかしどれもピンと来ない。

とりあえず、master環境に切り替えてみよう(理由はない)と思い、変更してみると以下のエラー。

$ git checkout master
fatal: This operation must be run in a work tree

ググると以下の情報が。
#git bareレポジトリでcheckoutしようとして"This operation must be run in a work tree"の対処法 – DQNEO起業日記

内容通り、以下のコマンドで切り替えは出来た。

$ git symbolic-ref HEAD refs/heads/master

ただし、またstagingに戻そうとすると、上記のコマンドが必要になる。。

ターミナルだけでなく、gitはsourceTreeでも管理しているのだけれど、
そのソフト上では、ブランチの切り替えはダブルクリックだけで簡単に出来た。

そんな感じで、ブランチの切り替えをしていると、自動的にstaging環境でフェッチが行われていた。
流れとしてはこんな感じ。

stagigブランチ
masterブランチに切り替え
stagingブランチに切り替え
自動的にフェッチが行われる
(全てsourcetree上での作業)

その後、ターミナル上でもfetchしてみたが、何事もなく動作した。

$ git fetch staging
Fetching repository, done.

結局、原因は不明で、修正手順も不明、なのだけれど、
ちょっと情報が少なかったのでメモとして残しておく。

   このエントリーをはてなブックマークに追加