解説
上流ブランチを設定すると更新も入る?Gitの追跡設定と取り込みを分けよう
origin/mainを上流へ設定する前後で、現在のコミットと作業ファイルを比較。上流なし・設定・解除をローカルだけの練習で確認。

Gitで「このブランチには上流がない」と言われた。origin/mainを上流へ設定すれば、向こうの変更もすぐ手元へ入るのかな。
上流ブランチの設定は、比較や一部の操作で参照する相手を決めるもの。取得したり統合したりする操作そのものではないよ。今回はコミットとブランチの基本が分かる人向けに、新しい一時フォルダーだけで確認する。
workと、取得済みのorigin/mainを用意する
次はBashのターミナルで実行する一まとまり。共有先役のbareリポジトリも同じ一時フォルダー内に作り、インターネットへpushしない。グローバル設定を書き換える操作もないよ。
(
set -e
task_upstream_dir=$(mktemp -d) || exit
git init --bare -q -b main "$task_upstream_dir/remote.git"
git clone -q "$task_upstream_dir/remote.git" "$task_upstream_dir/author"
cd "$task_upstream_dir/author" || exit
printf 'base\n' > note.txt
git add note.txt
git -c user.name=Practice -c user.email=practice@example.invalid commit -qm base
git push -q origin main
git clone -q "$task_upstream_dir/remote.git" "$task_upstream_dir/reader"
git -C "$task_upstream_dir/reader" switch -qc work --no-track
printf 'new\n' > note.txt
git add note.txt
git -c user.name=Practice -c user.email=practice@example.invalid commit -qm new
git push -q origin main
cd "$task_upstream_dir/reader" || exit
git fetch -q origin
git log -1 --format=%s
git branch --set-upstream-to=origin/main work
git rev-parse --abbrev-ref --symbolic-full-name '@{upstream}'
git log -1 --format=%s
cat note.txt
git rev-list --count 'HEAD..@{upstream}'
git branch --unset-upstream work
)
空の共有先を最初にcloneすると警告が出るが、この例では想定した状態だよ。workは--no-trackで作り、上流のない状態から始める。
設定してもbaseのまま
readerでfetchした時点ではorigin/mainがnewへ進み、手元のworkはbaseのまま。上流設定の前後で出すコミット名は、どちらもbaseになる。note.txtもbaseの一行が残るよ。
上流の表示だけはorigin/mainになり、HEAD..@{upstream}の件数は1。これは「取得済みの比較相手には、workにないコミットが一つある」と読める。設定によって作業ファイルがnewへ変わったわけではないんだ。
普段のリポジトリで上流を確認するときは、対象のフォルダーで次の読み取りコマンドも使えるよ。
git branch -vv
実際の作業では、この一覧も上流と差の確認に使える。ただしahead・behindの比較は手元にある参照に基づくので、遠くのサーバーの最新状態を常に示すわけではないよ。
何の既定値かは、操作ごとに確認する
上流設定はpullなどの引数を省略する場合にも関係する。一方、push先はpushの設定なども関係するため、「上流を変えれば、すべての送信先が同じになる」とは決めつけないでね。
実リポジトリで設定する前に、現在のブランチ、リモートURL、取得済みの相手を確認しよう。今回の練習は上流設定を最後に解除するだけで、workのコミットを統合・削除しない。一時フォルダーは残るので、不要になった練習場所だけを後で片付けられる。
Git公式マニュアル原文を2026年10月29日に確認し、Git 2.52.0で上流の設定・解除、コミットとファイルの保持、差の1件を検証した。fetchとpull、リモート追跡参照の整理も関連するよ。

みんなのコメント 0
感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。
最初のコメントをどうぞ。