読者です 読者をやめる 読者になる 読者になる

Corredor

ウェブ、プログラミングの勉強メモ。

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

参考

実用Git

実用Git

  • 作者: Jon Loeliger,吉藤英明(監訳),本間雅洋,渡邉健太郎,浜本階生
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2010/02/19
  • メディア: 大型本
  • 購入: 7人 クリック: 287回
  • この商品を含むブログ (45件) を見る