Git で上流ブランチを設定する方法
アップストリームは、ローカル ブランチがプッシュおよびプルするリモート ブランチです。ここでは、ブランチを設定、確認、変更、削除する方法、「上流ブランチがありません」エラーを修正する方法、およびフォークにおける upstream の意味を説明します。
作者 Kodmora
GitTree の背後にあるソフトウェア ハウス
- ブランチ
- リモートとプッシュ
このページでは
新しいブランチをプッシュして上流に設定するには、`git push -u origin my-branch` を実行します。 ブランチがリモートにすでに存在する場合は、代わりに git branch -u origin/my-branch を実行します。その後、普通の git push と git pull はどこに行くべきかを知っています。 -u は --set-upstream の短縮形です。
Git の上流ブランチとは何ですか?
アップストリームはトラッキング ブランチとも呼ばれ、ローカル ブランチにリンクされたリモート ブランチです。 Git は、このリンクを 3 つの目的で使用します。それは、git pull と git push が引数なしで使用される場合、git status の前後のカウントが何と比較されるか、短縮形の @{u} が何を意味するかということです。
新しいブランチの上流を設定するにはどうすればよいですか?
git switch -c feature/search
git push -u origin feature/searchこれにより、リモート上にブランチが作成され、2 つがリンクされます。最初のプッシュでは -u のみが必要です。 ブランチの作成と切り替えガイド では、この前のステップについて説明しています。
既存のブランチの上流を設定するにはどうすればよいですか?
リモート ブランチがすでに存在する場合は、プッシュせずにリンクします。
# the branch you are on
git branch -u origin/feature/search
# any other branch
git branch -u origin/main main長い形式は git branch --set-upstream-to=origin/main です。 Git がリモート ブランチが存在しないと判断した場合は、最初に git fetch を実行します。
「現在のブランチには上流ブランチがありません」を修正するにはどうすればよいですか?
これまでプッシュされていないブランチで git push を実行すると、Git はこれを出力します。
fatal: The current branch feature/search has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin feature/search提案されたコマンドを実行します。エラーの表示を停止するには、最初のプッシュごとに Git にこれを実行させます (Git 2.37 以降)。
git config --global push.autoSetupRemote true関連メッセージ「現在のブランチの追跡情報がありません」は git pull から送信されています。修正内容は同じです: git branch -u origin/my-branch。
ブランチの軌跡を確認するにはどうすればよいですか?
# every branch, with its upstream and ahead/behind
git branch -vv
# only the current branch
git rev-parse --abbrev-ref @{u}
# commits you have not pushed
git log @{u}..
# commits you have not pulled
git log ..@{u}アップストリームを変更または削除するにはどうすればよいですか?
# point the branch somewhere else
git branch -u origin/develop
# stop tracking anything
git branch --unset-upstreamどちらのコマンドでもコミットは変更されません。 .git/config のブランチの設定のみを編集します。
分岐の上流とは何を意味しますか?
この言葉には2番目の意味があります。フォークでは、upstream は慣例により リモート、つまりフォーク元の元のプロジェクトの名前ですが、origin は独自のコピーです。それが「git Remote add Upstream」の内容です。
git remote add upstream https://github.com/original/project.git
git fetch upstream
git switch main
git merge upstream/main
git push origin main| 上流ブランチ | 上流のリモート | |
|---|---|---|
| それは何ですか | リモートブランチ 1 つのローカルブランチを追跡します | upstream という名前のリモート、通常はフォークのオリジナル |
| とセット | git push -u または git branch -u | git remote add upstream <url> |
| で確認してください | git branch -vv | git remote -v |
GitTree でアップストリームを設定する方法
新しいブランチを公開する
ブランチをチェックアウトした状態で、Push を押します。 GitTree says the branch does not track a remote branch yet and asks for the Remote.
リモートを選択してください
originを選択し、原点にプッシュ を押します。そこにブランチが作成され、それ以降追跡されます。追跡対象を変更する
ブランチ ラベルを右クリックし、[アップストリーム] を開き、次に [アップストリームの設定…] を開きます。 アップストリーム ブランチを選択して追跡を押すか、アップストリームの設定を解除を選択します。
![GitTree のブランチにある Upstream サブメニュー。[Set Upstream…] がマークされています。](/docs-media/upstream-menu-en-1154.6e142967cf.webp)
詳細については トラッキングの設定とブランチの公開 を参照し、練習するには リモートとアップストリームのレッスン を参照してください。
よくある質問
git Push -u は何をしますか?
ブランチをプッシュし、リモート ブランチをそのアップストリームとして記録するため、後の git push と git pull には引数が必要ありません。
プッシュするたびに -u が必要ですか?
いいえ、ブランチごとに 1 回だけです。設定は、変更するまで .git/config に残ります。
起点と上流の違いは何ですか?
origin は、クローン作成元のリモートのデフォルト名です。 upstream は、ローカル ブランチが追跡するブランチ、または慣例によりフォークしたプロジェクトを指す 2 番目のリモートのいずれかです。
@{u} とはどういう意味ですか?
これは現在のブランチの上流の省略形であるため、git diff @{u} はブランチを追跡するリモート ブランチと比較します。 @{upstream} は長い形式です。
私のブランチが間違ったリモート ブランチにプッシュされるのはなぜですか?
多くの場合、名前が変更された後、その上流はそこを指します。 git branch -vv を実行して確認し、git branch -u origin/correct-name を実行して修正します。
情報源
他の製品に関する申し立ては、2026年11月7日 の公式ページと照合して確認されました。価格と機能は変更されます。ベンダーのページが真実の情報源です。
