Git: upstream ブランチを設定する
最終更新
ブランチの upstream とは、それが追跡するリモートブランチのことです。設定すると、シンプルな git push と git pull は、毎回リモートとブランチを指定しなくてもコミットの送信先と取得元を把握します。通常は最初の push で -u を使って設定するか、後から git branch --set-upstream-to で設定します。
これらをターミナルプレイグラウンドで試してみてください - ブラウザ内の本物のシェルで、インストール不要です。
構文
| Command | What it does |
|---|---|
git push -u origin feature | push と upstream の設定を一度に行う |
git branch --set-upstream-to=origin/feature | 現在のブランチに upstream を設定する |
git branch -u origin/feature feature | 指定したブランチに upstream を設定する |
git branch -vv | 各ブランチとその upstream を表示する |
よくあるケース
| Goal | Command |
|---|---|
| 最初の push で upstream を設定する | git push -u origin feature |
| 既存のブランチに upstream を設定する | git branch --set-upstream-to=origin/feature |
| どの upstream が設定されているか確認する | git branch -vv |
Git set upstream に関するよくある質問
upstream ブランチを設定すると何が起こりますか?
ローカルブランチを特定のリモートブランチにリンクします。それ以降、そのブランチでの
git push と git pull は使用するリモートとブランチを把握するため、引数なしで実行できます。Git は git status で upstream に対してどれだけ先行または遅延しているかも表示します。upstream ブランチはどう設定しますか?
最も簡単なのは最初の push 時です。
git push -u origin <branch> は push と upstream の設定を同時に行います。すでにリモートに存在するブランチには、そのブランチにいる状態で git branch --set-upstream-to=origin/<branch> を使います。ブランチの upstream はどう確認しますか?
git branch -vv を実行します。ローカルブランチが一覧表示され、それぞれに upstream([origin/feature] のように)と先行しているか遅延しているかが注記されます。upstream のないブランチは角括弧内に何も表示しません。なぜ git push は upstream の設定を求めてくるのですか?
現在のブランチに upstream が構成されておらず、Git がどこに push すべきか分からないためです。
git push -u origin <branch> を一度実行して設定すれば、以降の push は git push だけで済みます。これをオンラインで練習できますか?
はい。ターミナルプレイグラウンドを開けば、ブラウザ内の本物のシェルでこれらのコマンドを実行できます - インストール不要です。Coddy の無料のインタラクティブな Git コースでも、リモートの扱い方を段階的に学べます。