【Git】プッシュ先を明示しないといけない理由とuオプションについて

ローカルリポジトリでの作業コミットをリモートリポジトリにプッシュする際、git pushコマンドの後の記述を明示しなくてはいけない場合とそうでない場合についてまとめます。

git push だけだとプッシュできない理由
現在の作業ブランチにリモートリポジトリのブランチ(上流ブランチという)が存在しない。

(例)ブランチsub1から、新規ブランチsub2を作成

ブランチに対して上流ブランチの紐付けは下記のコマンドで確認することができます。

各ブランチの紐付け結果

各ブランチごとに

ブランチ名 コミット番号 [上流ブランチ名] コミットメッセージ

が表示されますが、作成直後である、現在のsub2にだけ上流ブランチの紐付けがないことが確認出来ます。

そのため、コマンド git push だけでは プッシュすることが出来ず、下記のように上流ブランチ名を指定しなくてはいけないのです。

git push リモートリポジトリ ブランチ名

毎回、上流ブランチを指定するはめんどくさい

コミットをプッシュするたびに毎回上流を指定してやるのは手間なので、初回のプッシュ時に下記のオプションで上流ブランチを恒久的に設定することが出来ます。

または(省略系)

ちなみに、このオプションは最初に git push のみでプッシュを行った際に表示されるエラーメッセージ内でも教えてもらえます。

オプション付きでプッシュした後、上流ブランチの紐付けが作成されていることを確認出来ます。

次回以降この作業ブランチのコミットをプッシュする際は、

のみで上流ブランチに対してプッシュできるようになります。

逆に、uオプションの意味を知らずにプッシュする際に必ず必要なものだと思っている人(私もそうでした)も意外と多いのでは思いますが、プッシュする際のコマンドが短いと、作業効率がかなりアップしますのできちんと意味を理解して使いこなせるようにしておきたいですね。

Follow me!