git pushできない場合の対処方法「fatal: The current branch [任意ブランチ名] has no upstream branch.」
使い始めのころ題名のような「git push」出来なかった事がありましたので備忘録のため記事としてまとめます。原因は作成したブランチの「追跡ブランチ」が未設定のため、「git push」ではどこにプシュして良いのかわからずにエラーとなります。リモートブランチが作成されていないのでは?
■エラー前にした操作
まずこのエラーが出るまでにした事です。git cloneして新しい「b_branch」を作成しました。下記流れでコマンドを実施。すると「fatal: The current branch has no upstream branch. 」
$ git checkout -b b_branch
$ git add .
$ git commit -m "コミットコメント"
$ git push
■エラーの対処方法
ご助言通りに下記を入力してみる。すると・・・無事プッシュできます。
$ git push --set-upstream origin b_branch
なぜ成功するようになったのか、まずリモートブランチに「b_branch」が作成されています。
さらに追跡ブランチとしても「b_branch」設定されます。
*b_branch 60117fe [origin/b_branch] ←これが追跡ブランチ。
追跡ブランチが設定されると、次からは「$ git push」が使用できます。では、追加でb_branchのファイルを編集して、プッシュしてみましょう。
ご覧の通り、追跡ブランチが設定されているので「$ git push」でプッシュが可能となりました。「fatal: The current branch has no upstream branch.」のエラーが出なくなりましたね。
振り返ると、新規でブランチを作成した場合に「git push」でプッシュすると、プッシュ先が未設定のためエラーが出たということになります。gitをターミナルで使用する場合は意識するのですが、AndroidStudioやQtなどのUIツールを使用するとついつい追跡ブランチの設定を忘れてしまい、気づかずいざプッシュする時にエラーとなるケースが私は何回ありました。その時はターミナルで現状を把握することが大切ですね。
リモートブランチあり、追跡ブランチも設定されていると「git push」がエラーなく実行されます。
今回紹介した「fatal: The current branch has no upstream branch.」は「git hub」を使用すると、誰もが経験するエラーではないでしょうか?スーパーマリオで最初のクリボーで死ぬようなものですね(笑)ジャンプ操作を覚えたら先に進めるようになるのと同じです、今回詳細したように原因が理解できれば次からは楽々ですね、ぜひ試して下さい。