SourceTreeで突然gitリモートリポジトリに繋がらなくなった時。

今まで普通に使えてたのに・・。

私の環境では、2017年8月下旬に Windows版SourceTree から BitbucketGitHub に接続した際に以下のようなエラーが出て fetchpushもできなくなってしまいました。

git -c diff.mnemonicprefix=false -c core.quotepath=false fetch --prune origin
Warning: Permanently added 'bitbucket.org,104.192.143.1' (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

でも問題なく使えるリポジトリもあるんです。
SSH鍵にもアカウントの権限にも問題は無いようで、とっても謎でした。

リモートリポジトリパスが https のみに?

正常なリポジトリとエラーが出てるリポジトリとを比べると、接続先のリポジトリパスの形式が違っていました。 正常なリポジトリのパスに合わせて修正したところ、問題なく直りましたので、どうやらこれが原因のようです。

  • [OK] https://(USER)@bitbucket.org/(USER)/(PROJECT).git
  • [NG] ssh://git@bitbucket.org/(USER)/(PROJECT).git
  • [NG] git@bitbucket.org:(USER)/(PROJECT).git

(USER) はユーザーID、 (PROJECT) はリポジトリIDに読み替えて下さい。
※GitHubの場合、 https://(USER)@github.com/(USER)/(PROJECT).git で通ります。

上記3種類の形式が全て利用できていたのですが、 https のみに統一したということなんでしょうか。 最近、SourceTree をバージョン 2.1.10.0 に更新したので、その影響が強そうです。

まぁともかく、 一番上の形式に合わせて「リモートリポジトリのパス」を編集すればOKです。

SourceTree上での編集

困っている方がいれば、ぜひお試しください。