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/testorigin/developと紐づいているのが確認できる。

試していないがこの状況下でgit pushするとdevelopブランチにpushされるのかもしれない

次に、オプション「-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/testorigin/feature/testが紐づいていることがわかる。

以上のことから、オプション「-u」をつけることで、リモートリポジトリの該当ブランチにちゃんと紐づきgit pushだけでアップロードできるようになり、誤爆が減る点良いのかもしれない。

最後に、リモートリポジトリのブランチは「上流ブランチ」と呼ぶらしい
オプション「-u」について詳しく知りたいなら「上流ブランチ」で検索すると良い

Leave a Comment

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。

CAPTCHA