LoginSignup
3
2

More than 1 year has passed since last update.

git push時にエラーが発生した! (fatal: Authentication failed ~, src refspec ~ does not match any.)

Posted at

はじめに

最近、大学入学時くらいに作成しただけしておいたgithubのアカウントをなんとかせにゃならんな~、と唐突に思った。
あとついでにDockerの知識確認もしたかったから、試しにDockerを使ってNext.jsのサンプルアプリでも立ち上げて、git push origin mainしてみたところ、記事タイトルのエラー発生。
しばらくハマったので戒めのために書いておくことにする。

環境

  • OS: Linux(KDE neon 5.23.5)
  • git version: なんか.22とか.23くらいの古いやつだったはず

発生したエラー

たしか下記の2つ。

fatal: Authentication failed for 'https://github.com/{your user name}/{your repository name}.git'
error: src refspec {your branch name} does not match any.

原因

原因は多分下の2つ。多分。

  • push時に用いるgithubのパスワードが、アクセストークンとやらに変わっていた
  • ローカルとリモートでブランチ名が違っていた(masterとmain)

超初歩的でくだらないミスなので恥ずかしい限り。

解決方法

アクセストークンを取得する

パスワードの代わりに使用することになったアクセストークンとやらを取得する必要がある。
これはgithubのSettingsページから取得可能。

アカウントのSettingsページへ行ったら、サイドバーにあるDeveloper settings -> Personal access tokensへ。
Personal access tokensへ行ったら、Generate new tokenで新しくトークンを発行できる。

なにやら色々設定項目があるけども、それぞれ多分以下のような感じ。

  • Note: トークンの使用目的(多分適当でいい)
  • Expiration: トークンの有効期限(リポジトリに触りそうな期間を目安で設定すればよさそう)
  • Select scopes: トークンに付与されるアクセス権限の設定(適当にrepoとdelete_repoにチェック)

はい。どうやらこれでGenerateして出てきたトークンをコピペして使用すればいいのかな。
ただネットで調べた感じ、いちいち長ったらしいトークンを入力するのは面倒って人が多いっぽい。
おまけにトークンは生成時に表示されるページで一度しか確認できないみたいだから、どこかに控えなくちゃいけない。
これが面倒な人は、ローカルのgitに登録するリモートURLに、トークンを追加してあげればいいみたい。
書き方は以下の通り。

.git/config
[remote ""origin]
        url = https://{access token}@github.com/{your user name}/{your repository name}.git

意外と単純。
ただこの方法は将来的に場合によってはセキュリティ的な問題になりやすいみたいだから、注意が必要かも。
個人で遊ぶ分にはまあどうってことなさそうではあるから、自分は気にしないけど。

gitのブランチ名をmasterからmainに変更する

「githubのデフォルトがmainになったんだからgitも対応してくれよ(あるいは逆)」とは思ったけど、してくれないからとりあえず自分でブランチ名を変えるしかない。
これも単純で、ターミナルに以下のコマンドを打ち込めばいい。

git branch -m {old branch name} {new branch name}

#現在のブランチ名を変えたいなら引数短縮できて
git branch -m {new branch name}

今回だとmasterをmainに変えたいってことだったから、git branch -m master mainとした。
これで多分エラーは出なくなると思う。一件落着。
「いちいちgit initするたびに名前変えるのダルいな!」と思って、デフォルトのブランチ名変えようしたらハマった話もそのうち書くかも。

おわりに

今回引っかかった原因は、どちらも情報としてはキャッチアップしてたのに、実際に手元で確認したり対応していないものだった。
特にgithubのデフォルトブランチ名がmasterからmainになる話なんかは結構大きかったから、やっぱりサービスの提供元からなにか大きな変更が発表されたら、しっかりとそれに対応しなくちゃいかんなー、とかなんとか。
とにかく今後こんなたわけたミスをしないように、情報には敏感に、対応は素早くを心がけたい所存。

あと、もう少し定期的にqiitaとかgithubとか更新しないとせっかく登録したのにもったいないから、そこもなんとかせねば。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2