Macからhttps接続でリモートリポジトリに git push しようとして、
fatal: https://git.example.com/example.git/info/refs not valid: is this a git repository?
みたいな感じで怒られた時のメモ。
数時間ハマった。
原因は、
- gitのcredential helperである git-credential-osxkeychain が有効になっていた
- 過去に同じGitホスティングを別のアカウントで利用していて、その時の認証情報をキーチェーンが記憶していた
というオチ。
本来であれば、別途git-credential-osxkeychainをインストールして、
git config --global credential.helper osxkeychain
で設定しないと有効にならないはずだが、Homebrewでgitをインストールすると、ここまで有効になった状態で入るらしい。
対応としてはキーチェーンアクセスから該当レコードを削除すればよし。
エラーメッセージが分かりにくく、この内容では認証が原因とは思い当たりにくいので残しておく。
一応、デバッグ方法として、
$ GIT_CURL_VERBOSE=1 git push -u origin master
と指定すると通信ログが表示され、よく見ると認証の箇所で
Server auth using Basic with user 'hoge@fuga.com'
などとなっていることが分かる。