git pushした時の挙動でちょっと躓いたのでメモ
#リモートブランチの追跡有無によるpush時の挙動の違い
カレントブランチがリモートブランチを追跡している場合、
git push
で追跡しているブランチにpushできる。
$ git push
カレントブランチがリモートブランチを追跡していない場合、
git push
だけだと怒られる。
$ git push
fatal: The current branch <branch_name> has no upstream branch.
To push the current branch and set the remote as upstream, use
カレントブランチがリモートブランチを追跡していない場合でもこのコマンドならpushできる。
$ git push origin <branch>
-uオプションをつけることで、
カレントブランチの変更をリモートにpushしつつ、そのブランチを追跡できるようになる。
$ git push -u origin <branch>
-uオプションをつけたあとはgit push
のみでpush可能になる。
#ブランチの作成と同時に追跡させる
ローカルのブランチからブランチを作成すると、
リモートブランチとローカルブランチの関連付けが無いため追跡していない。
$ git checkout -b branch-a
Switched to a new branch 'branch-a'
リモートブランチからクローンしてローカルにブランチを作成すると、
自動的に追跡できる。
$ git checkout -b branch-b origin/develop
Branch branch-b set up to track remote branch develop from origin.
Switched to a new branch 'branch-b'
#追跡しているリモートブランチを確認するコマンド
$ git branch -vv
#参考