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 が覚えられればとりあえず問題ないかも。

参考