GitHub Desktopを愛用しています。
すごく便利なツールなのですが、困ったことが起きました。
それは、GitHubで作ったリポジトリをクローンしようとしたときに、お目当てのリポジトリではなく、ほかのリポジトリがクローンされてしまうということなのです。
GitHub Desktopのバージョンは2.6.1です!
この症状は、以下のケースで起きるようです。
- GitHubにAというリポジトリを作り、それをクローン
- ローカルのAを削除
- GitHubのAをBにリネーム
- 新しくGitHubにAを作り、それをクローン
- なぜかAではなくBがクローンされる
この症状の原因がGitHub側にあるのかGitHub Desktopにあるのか切り分けるために、GitのCLIで同様のことをやってみましたら、問題なく期待どおりの動作となりました。
するとGitHub Desktopに何らかの問題があると推測できます。
ワールドワイドで使われているアプリケーションに、このようなベーシックな問題があるとは考えにくいのですが、ここは理性的に立ち向かうことにしました。
試行錯誤の末たどりついた仮説は、こんな感じです。
- GitHub Desktopは、リポジトリ名に何らかの識別子を作っている
- リポジトリ名が同じなら同じ識別子となる
- 識別子ごとに、GitHub側のリポジトリとURLを何らかの形で記憶している
- この対応は変更されない
- 同じリポジトリ名=識別子なら、常に最初に記憶されたGitHubリポジトリ名とURLを使う
識別子ではなく、リポジトリ名でも同じかもしれません。
つまり最初に、「このリポジトリ名だったら、GitHubのこのリポジトリを引っ張ってくるからね!」というのが決まっていて、それはあとになっても変わらないのではないか?ということなのです。
いろいろ解決の策を練りましたが、手っ取り早いのはGitHub Desktopをアンインストールして、%%Profile%%AppData¥Roaming¥GitHub Desktop
以下に残っているファイルもすべて削除、ということです。
根本的な解決にはなっていませんが、これでお目当てのリポジトリを無事クローンできました。
Aというリポジトリを作って試行錯誤的に作業していたけど、だいたいうまくいくようになったので改めてやり直したい。だけど保険のためにAを残しておきたいので、とりあえずBにリネーム、Aを新しく作り直す、というのはわりとあり得るケースだと思います。
もしかしたら同じくはまっている人がいるかも?ということで書いておきました。