いきなり結論
ローカルで新しく作成したブランチを push するときに -u
オプションをつける。
# ブランチを切る $ git checkout -b new_branch # (new_branch内で作業・コミット) # -u オプションを付けて実行する $ git push -u origin new_branch
経緯など
master
からブランチ切って作業してそれをリモートリポジトリにpushする、という作業の時に
毎回こういった操作をやってました。
# ブランチの作成 $ git checkout -b new_branch Switched to a new branch 'new_branch' # ---(ローカルブランチで作業)--- # pushしてリモートブランチを作成 $ git push origin new_branch Total 0 (delta 0), reused 0 (delta 0) To git@github.com:XXXXX/XXXXX.git * [new branch] new_branch -> new_branch # 他の人が更新するかもしれないので、追跡ブランチに設定しておく $ git branch --set-upstream-to origin/new_branch Branch new_branch set up to track remote branch new_branch from origin.
--set-upstream-to
を毎回打つのが面倒だなと。
ところが、もっと簡単な方法がありました。
git - Why do I need to do `--set-upstream` all the time? - Stack Overflow
これによると、push時に-u
オプションをつけると自動的に追跡ブランチになるそうです。
# 再度masterからブランチを切る $ git checkout -b new_branch2 Switched to a new branch 'new_branch2' # -u オプションを付けて実行する $ git push -u origin new_branch2 Total 0 (delta 0), reused 0 (delta 0) To git@github.com:XXXXX/XXXXX.git * [new branch] new_branch2 -> new_branch2 Branch new_branch2 set up to track remote branch new_branch2 from origin.
または、--set-upstream-to
自体にも-u
という省略形があるようなので
push時に忘れてしまってもこれでOK
# これはgit branch --set-upstream-to origin/new_branchと等価
git branch -u origin/new_branch
おまけ
サンプルで使ったブランチはローカル、リモートともに削除しましょう。
# ローカルブランチの削除 # ※削除対象のブランチにいる状態では実行できない $ git branch -D new_branch # リモートブランチの削除 $ git push origin :new_branch