web関連
【git】git pushする時にオプション「-u」をつけた方がいい理由
ブランチをローカルで複製(git checkout -b)し、リモートリポジトリにアップロードする時に「git push -u origin ブランチ名」というように「-u」というオプションをつけることを推奨する記事が多くてなぜなのか気になり調べた時の備忘録
理由:オプション「-u」をつけると以降「git push」でアップロードできる
git push -u origin ブランチ名(もしくは、git push --set-upstream origin ブランチ名)をつけてリモートリポジトリにpushすると、リモートリポジトリと紐づけをすることができる。そして、以降はgit pushだけでリモートリポジトリにアップロードができるようになるらしい。
# 「-u」オプションつけたら以降はこのコマンドでアップロード可
git push
# 「-u」オプションをつけない場合は毎回フルコマンドが必要
git push origin ブランチ名
これだけの違いらしい。
リモートリポジトリと紐づいているか確認する方法
ちなみに、git branch -vvというコマンドを使うと実際に紐づいているのかを確認できる。
以下はdevelopブランチをベースにfeature/testというブランチを複製し、リモートリポジトリにオプション「-u」をつけ無い時とつけてpushした時の例
まずは、オプション「-u」をつけない場合
# オプション「-u」をつけずに「git push origin feature/test」をした場合
$ git branch -vv
* develop ed44983 [origin/develop] pageTitle横幅追加
* feature/test 3d54a85 [origin/develop: ahead 2] 詳細ページくみ上げ
複製したfeature/testがorigin/developと紐づいているのが確認できる。
次に、オプション「-u」をつけた場合
# オプション「-u」をつけて「git push -u origin feature/test」をした場合
$ git branch -vv
develop ed44983 [origin/develop] pageTitle横幅追加
* feature/test abea49c [origin/feature/test] 詳細ページ修正
オプション「-u」をつけてpushするとfeature/testとorigin/feature/testが紐づいていることがわかる。
以上のことから、オプション「-u」をつけることで、リモートリポジトリの該当ブランチにちゃんと紐づきgit pushだけでアップロードできるようになり、誤爆が減る点良いのかもしれない。
最後に、リモートリポジトリのブランチは「
オプション「
上流ブランチ」と呼ぶらしいオプション「
-u」について詳しく知りたいなら「上流ブランチ」で検索すると良い
git pushするとdevelopブランチにpushされるのかもしれない