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 pushとブランチの追跡 - Qiita
- [git]ローカルからpushした時に自動的に追跡ブランチにする - dackdive's blog
- [git]ローカルブランチがどのリモートブランチを追跡してるのか確認する方法 - dackdive's blog

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