Git で新規ブランチを切って Push する時に何やら怒られるヤツの回避方法
git checkout -b hoge
で、カレントブランチから派生させて新しく hoge
ブランチを作って、作業した後に git push
しようとすると、以下のようなエラーが出る。
$ git push
fatal: The current branch develop has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin hoge
「アップストリームブランチ」って何やねんとなるが、要は「リモートに紐付けできるブランチがないよ」と言っている。新規ブランチなんだからそりゃそうだろう。
この「当該ローカルブランチと紐付けできるリモートブランチ」のことを、Git では「追跡ブランチ」もしくは「アップストリームブランチ」と読んでいるようだ。
大抵はローカルと同名のブランチがリモートにもあるつもりで作業するだろうから、新しくブランチを作って Push する時は、「これから Push する新規ブランチを追跡ブランチに設定してほしいな」という状況なワケである。んで Git の方もそれは想像がついているから、To push the current branch and set the remote as upstream, use
、つまり「そうしたいんだろうからこのコマンド使いなね」と教えてくれている。
だからこのコマンドを叩けば良いのだが、毎回聞かれるのはダルいので、運用方法を変えてみる。
# リモートのブランチから作ることで追跡させる
$ git checkout -b hoge origin/develop
# リモートに同名の新規ブランチを作って Push する
$ git push origin hoge
初回はこのやり方を守るようにすれば怒られなくなる。
ちなみに、--set-upstream
は -u
と省略できるので、git push -u origin hoge
が覚えられればとりあえず問題ないかも。