「--set-upstream」は何をしますか?


回答:


411
git branch --set-upstream <remote-branch>

現在のローカルブランチのデフォルトのリモートブランチを設定します。

今後のgit pullコマンド(現在のローカルブランチがチェックアウトされている)は、
からのコミットを<remote-branch>現在のローカルブランチに取り込もうとします。


明示的に入力する必要を回避する1つの方法--set-upstream-u、次のようにその省略形フラグを使用することです。

git push -u origin local-branch

これにより、今後のプッシュ/プル試行のアップストリームアソシエーションが自動的に設定されます。
詳細については、上流のブランチと追跡に関するこの詳細な説明をご覧ください。


混乱を避けるために、の最近のバージョンでは、gitこのややあいまいな--set-upstreamオプションを廃止--set-upstream-toし、同じ構文と動作のより詳細なオプションを採用しています。

git branch --set-upstream-to <origin/remote-branch>

7
--set-upstreamフラグは廃止され、削除されます。--trackまたは--set-upstream-toの使用を検討してください
Rohit Singh Sengar 2017年

1
このコマンドではgit push -u origin local-branch何をorigin表していますか?origin後以外に何か入力するケースはあります-uか?
John Henckel

2
@JohnHenckel originは、クローン元として使用されたリモートgitリポジトリを参照します。複数のリモートgitリポジトリが存在する場合があります。そのような場合は、origin参照したいリモートの適切な名前に置き換えることができます。
TheCodeArtist 2018年

git remote -vorigin
リモート

39

リモートにプッシュして--set-upstreamフラグgit を使用すると、プッシュ先のブランチをリモートトラッキングブランチとして設定します。

リモートトラッキングブランチを追加することは、gitがそのときgit fetchgit pullまたはgit push将来的に何をしたいかを認識していることを意味します。ローカルブランチとそれが追跡しているリモートブランチを同期させておきたいと想定し、これを実現するために適切なことを行います。

git branch --set-upstream-toまたはでも同じことができgit checkout --trackます。詳細については、ブランチの追跡に関するgitヘルプページを参照してください。


-tでチェックアウトすると、プルの場合のみ、プッシュの上流が設定されます。
ジム

8

git branch --set-upstream <<origin/branch>> は正式にはサポートされなくなり、代わりに git branch --set-upstream-to <<origin/branch>>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.